<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621680791102"><span id="local-6989586621680791103"><span id="local-6989586621680791104"><span id="local-6989586621680791105"><span id="local-6989586621680791106"><span id="local-6989586621680791107"></span></span></span></span></span></span><span class="hs-pragma">{-# LANGUAGE TypeSynonymInstances #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE FlexibleInstances #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE DeriveTraversable #-}</span><span>
</span><span id="line-5"></span><span class="hs-pragma">{-# LANGUAGE NamedFieldPuns #-}</span><span>
</span><span id="line-6"></span><span>
</span><span id="line-7"></span><span class="hs-comment">-- | Unit &amp; Module types</span><span>
</span><span id="line-8"></span><span class="hs-comment">--</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- This module is used to resolve the loops between Unit and Module types</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- (Module references a Unit and vice-versa).</span><span>
</span><span id="line-11"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Unit.Types</span><span>
</span><span id="line-12"></span><span>   </span><span class="hs-special">(</span><span> </span><span class="annot"><span class="hs-comment">-- * Modules</span></span><span>
</span><span id="line-13"></span><span>     </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier">GenModule</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-14"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier">Module</span></a></span><span>
</span><span id="line-15"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstalledModule"><span class="hs-identifier">InstalledModule</span></a></span><span>
</span><span id="line-16"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedModule"><span class="hs-identifier">InstantiatedModule</span></a></span><span>
</span><span id="line-17"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mkModule"><span class="hs-identifier">mkModule</span></a></span><span>
</span><span id="line-18"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#pprModule"><span class="hs-identifier">pprModule</span></a></span><span>
</span><span id="line-19"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#pprInstantiatedModule"><span class="hs-identifier">pprInstantiatedModule</span></a></span><span>
</span><span id="line-20"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#moduleFreeHoles"><span class="hs-identifier">moduleFreeHoles</span></a></span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span>     </span><span class="annot"><span class="hs-comment">-- * Units</span></span><span>
</span><span id="line-23"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier">GenUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-24"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier">Unit</span></a></span><span>
</span><span id="line-25"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-26"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier">GenInstantiatedUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-27"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier">InstantiatedUnit</span></a></span><span>
</span><span id="line-28"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IndefUnitId"><span class="hs-identifier">IndefUnitId</span></a></span><span>
</span><span id="line-29"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#DefUnitId"><span class="hs-identifier">DefUnitId</span></a></span><span>
</span><span id="line-30"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Instantiations"><span class="hs-identifier">Instantiations</span></a></span><span>
</span><span id="line-31"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiations"><span class="hs-identifier">GenInstantiations</span></a></span><span>
</span><span id="line-32"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mkGenInstantiatedUnit"><span class="hs-identifier">mkGenInstantiatedUnit</span></a></span><span>
</span><span id="line-33"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mkInstantiatedUnit"><span class="hs-identifier">mkInstantiatedUnit</span></a></span><span>
</span><span id="line-34"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mkInstantiatedUnitHash"><span class="hs-identifier">mkInstantiatedUnitHash</span></a></span><span>
</span><span id="line-35"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mkGenVirtUnit"><span class="hs-identifier">mkGenVirtUnit</span></a></span><span>
</span><span id="line-36"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mkVirtUnit"><span class="hs-identifier">mkVirtUnit</span></a></span><span>
</span><span id="line-37"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mapGenUnit"><span class="hs-identifier">mapGenUnit</span></a></span><span>
</span><span id="line-38"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier">unitFreeModuleHoles</span></a></span><span>
</span><span id="line-39"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#fsToUnit"><span class="hs-identifier">fsToUnit</span></a></span><span>
</span><span id="line-40"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier">unitFS</span></a></span><span>
</span><span id="line-41"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#unitString"><span class="hs-identifier">unitString</span></a></span><span>
</span><span id="line-42"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#toUnitId"><span class="hs-identifier">toUnitId</span></a></span><span>
</span><span id="line-43"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#virtualUnitId"><span class="hs-identifier">virtualUnitId</span></a></span><span>
</span><span id="line-44"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#stringToUnit"><span class="hs-identifier">stringToUnit</span></a></span><span>
</span><span id="line-45"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#stableUnitCmp"><span class="hs-identifier">stableUnitCmp</span></a></span><span>
</span><span id="line-46"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#unitIsDefinite"><span class="hs-identifier">unitIsDefinite</span></a></span><span>
</span><span id="line-47"></span><span>
</span><span id="line-48"></span><span>     </span><span class="annot"><span class="hs-comment">-- * Unit Ids</span></span><span>
</span><span id="line-49"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#unitIdString"><span class="hs-identifier">unitIdString</span></a></span><span>
</span><span id="line-50"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#stringToUnitId"><span class="hs-identifier">stringToUnitId</span></a></span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span>     </span><span class="annot"><span class="hs-comment">-- * Utils</span></span><span>
</span><span id="line-53"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier">Definite</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-54"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier">Indefinite</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-55"></span><span>
</span><span id="line-56"></span><span>     </span><span class="annot"><span class="hs-comment">-- * Wired-in units</span></span><span>
</span><span id="line-57"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#primUnitId"><span class="hs-identifier">primUnitId</span></a></span><span>
</span><span id="line-58"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#bignumUnitId"><span class="hs-identifier">bignumUnitId</span></a></span><span>
</span><span id="line-59"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#baseUnitId"><span class="hs-identifier">baseUnitId</span></a></span><span>
</span><span id="line-60"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#rtsUnitId"><span class="hs-identifier">rtsUnitId</span></a></span><span>
</span><span id="line-61"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#thUnitId"><span class="hs-identifier">thUnitId</span></a></span><span>
</span><span id="line-62"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mainUnitId"><span class="hs-identifier">mainUnitId</span></a></span><span>
</span><span id="line-63"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#thisGhcUnitId"><span class="hs-identifier">thisGhcUnitId</span></a></span><span>
</span><span id="line-64"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#interactiveUnitId"><span class="hs-identifier">interactiveUnitId</span></a></span><span>
</span><span id="line-65"></span><span>
</span><span id="line-66"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#primUnit"><span class="hs-identifier">primUnit</span></a></span><span>
</span><span id="line-67"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#bignumUnit"><span class="hs-identifier">bignumUnit</span></a></span><span>
</span><span id="line-68"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#baseUnit"><span class="hs-identifier">baseUnit</span></a></span><span>
</span><span id="line-69"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#rtsUnit"><span class="hs-identifier">rtsUnit</span></a></span><span>
</span><span id="line-70"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#thUnit"><span class="hs-identifier">thUnit</span></a></span><span>
</span><span id="line-71"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mainUnit"><span class="hs-identifier">mainUnit</span></a></span><span>
</span><span id="line-72"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#thisGhcUnit"><span class="hs-identifier">thisGhcUnit</span></a></span><span>
</span><span id="line-73"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#interactiveUnit"><span class="hs-identifier">interactiveUnit</span></a></span><span>
</span><span id="line-74"></span><span>
</span><span id="line-75"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#isInteractiveModule"><span class="hs-identifier">isInteractiveModule</span></a></span><span>
</span><span id="line-76"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#wiredInUnitIds"><span class="hs-identifier">wiredInUnitIds</span></a></span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span>     </span><span class="annot"><span class="hs-comment">-- * Boot modules</span></span><span>
</span><span id="line-79"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IsBootInterface"><span class="hs-identifier">IsBootInterface</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-80"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenWithIsBoot"><span class="hs-identifier">GenWithIsBoot</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-81"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#ModuleNameWithIsBoot"><span class="hs-identifier">ModuleNameWithIsBoot</span></a></span><span>
</span><span id="line-82"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#ModuleWithIsBoot"><span class="hs-identifier">ModuleWithIsBoot</span></a></span><span>
</span><span id="line-83"></span><span>   </span><span class="hs-special">)</span><span>
</span><span id="line-84"></span><span class="hs-keyword">where</span><span>
</span><span id="line-85"></span><span>
</span><span id="line-86"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-87"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span>
</span><span id="line-88"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html"><span class="hs-identifier">GHC.Types.Unique.DSet</span></a></span><span>
</span><span id="line-89"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.Ppr.html"><span class="hs-identifier">GHC.Unit.Ppr</span></a></span><span>
</span><span id="line-90"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html"><span class="hs-identifier">GHC.Unit.Module.Name</span></a></span><span>
</span><span id="line-91"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html"><span class="hs-identifier">GHC.Utils.Binary</span></a></span><span>
</span><span id="line-92"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-93"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-94"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Encoding.html"><span class="hs-identifier">GHC.Utils.Encoding</span></a></span><span>
</span><span id="line-95"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Fingerprint.html"><span class="hs-identifier">GHC.Utils.Fingerprint</span></a></span><span>
</span><span id="line-96"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#"><span class="hs-identifier">Control.DeepSeq</span></a></span><span>
</span><span id="line-99"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#"><span class="hs-identifier">Data.Data</span></a></span><span>
</span><span id="line-100"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.OldList.html#sortBy"><span class="hs-identifier">sortBy</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-101"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Function.html#"><span class="hs-identifier">Data.Function</span></a></span><span>
</span><span id="line-102"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Bifunctor.html#"><span class="hs-identifier">Data.Bifunctor</span></a></span><span>
</span><span id="line-103"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.html#"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">BS</span></span><span>
</span><span id="line-104"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.Char8.html#"><span class="hs-identifier">Data.ByteString.Char8</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">BS.Char8</span></span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="annot"><a href="GHC.Unit.State.html"><span class="hs-identifier">GHC.Unit.State</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.State.html#UnitState"><span class="hs-identifier">UnitState</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Unit.State.html#displayUnitId"><span class="hs-identifier">displayUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-107"></span><span class="hs-keyword">import</span><span> </span><span class="hs-pragma">{-# SOURCE</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html"><span class="hs-identifier">GHC.Driver.Session</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier">unitState</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-110"></span><span class="hs-comment">-- MODULES</span><span>
</span><span id="line-111"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span class="hs-comment">-- | A generic module is a pair of a unit identifier and a 'ModuleName'.</span><span>
</span><span id="line-114"></span><span class="hs-keyword">data</span><span> </span><span id="GenModule"><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-var">GenModule</span></a></span></span><span> </span><span id="local-6989586621680791505"><span class="annot"><a href="#local-6989586621680791505"><span class="hs-keyword hs-type">unit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Module"><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-var">Module</span></a></span></span><span>
</span><span id="line-115"></span><span>   </span><span class="hs-special">{</span><span> </span><span id="moduleUnit"><span class="annot"><span class="annottext">forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621680791505"><span class="hs-keyword hs-type">unit</span></a></span><span>       </span><span class="hs-comment">-- ^ Unit the module belongs to</span><span>
</span><span id="line-116"></span><span>   </span><span class="hs-special">,</span><span> </span><span id="moduleName"><span class="annot"><span class="annottext">forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span> </span><span class="hs-comment">-- ^ Module name (e.g. A.B.C)</span><span>
</span><span id="line-117"></span><span>   </span><span class="hs-special">}</span><span>
</span><span id="line-118"></span><span>   </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680791030"><span id="local-6989586621680791035"><span class="annot"><span class="annottext">GenModule unit -&gt; GenModule unit -&gt; Bool
(GenModule unit -&gt; GenModule unit -&gt; Bool)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; Bool)
-&gt; Eq (GenModule unit)
forall unit. Eq unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: GenModule unit -&gt; GenModule unit -&gt; Bool
$c/= :: forall unit. Eq unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
== :: GenModule unit -&gt; GenModule unit -&gt; Bool
$c== :: forall unit. Eq unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680791005"><span id="local-6989586621680791007"><span id="local-6989586621680791010"><span id="local-6989586621680791013"><span id="local-6989586621680791016"><span id="local-6989586621680791020"><span id="local-6989586621680791025"><span class="annot"><span class="annottext">Eq (GenModule unit)
Eq (GenModule unit)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; Ordering)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; Bool)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; Bool)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; Bool)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; Bool)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; GenModule unit)
-&gt; (GenModule unit -&gt; GenModule unit -&gt; GenModule unit)
-&gt; Ord (GenModule unit)
GenModule unit -&gt; GenModule unit -&gt; Bool
GenModule unit -&gt; GenModule unit -&gt; Ordering
GenModule unit -&gt; GenModule unit -&gt; GenModule unit
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
forall {unit}. Ord unit =&gt; Eq (GenModule unit)
forall unit. Ord unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
forall unit.
Ord unit =&gt;
GenModule unit -&gt; GenModule unit -&gt; Ordering
forall unit.
Ord unit =&gt;
GenModule unit -&gt; GenModule unit -&gt; GenModule unit
min :: GenModule unit -&gt; GenModule unit -&gt; GenModule unit
$cmin :: forall unit.
Ord unit =&gt;
GenModule unit -&gt; GenModule unit -&gt; GenModule unit
max :: GenModule unit -&gt; GenModule unit -&gt; GenModule unit
$cmax :: forall unit.
Ord unit =&gt;
GenModule unit -&gt; GenModule unit -&gt; GenModule unit
&gt;= :: GenModule unit -&gt; GenModule unit -&gt; Bool
$c&gt;= :: forall unit. Ord unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
&gt; :: GenModule unit -&gt; GenModule unit -&gt; Bool
$c&gt; :: forall unit. Ord unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
&lt;= :: GenModule unit -&gt; GenModule unit -&gt; Bool
$c&lt;= :: forall unit. Ord unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
&lt; :: GenModule unit -&gt; GenModule unit -&gt; Bool
$c&lt; :: forall unit. Ord unit =&gt; GenModule unit -&gt; GenModule unit -&gt; Bool
compare :: GenModule unit -&gt; GenModule unit -&gt; Ordering
$ccompare :: forall unit.
Ord unit =&gt;
GenModule unit -&gt; GenModule unit -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680790964"><span id="local-6989586621680790966"><span id="local-6989586621680790968"><span id="local-6989586621680790970"><span id="local-6989586621680790972"><span id="local-6989586621680790974"><span id="local-6989586621680790976"><span id="local-6989586621680790978"><span id="local-6989586621680790980"><span id="local-6989586621680790986"><span id="local-6989586621680790988"><span id="local-6989586621680790990"><span id="local-6989586621680790994"><span id="local-6989586621680790999"><span class="annot"><span class="annottext">Typeable (GenModule unit)
Typeable (GenModule unit)
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; GenModule unit -&gt; c (GenModule unit))
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenModule unit))
-&gt; (GenModule unit -&gt; Constr)
-&gt; (GenModule unit -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenModule unit)))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c (GenModule unit)))
-&gt; ((forall b. Data b =&gt; b -&gt; b)
    -&gt; GenModule unit -&gt; GenModule unit)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r)
-&gt; (forall u.
    (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; GenModule unit -&gt; m (GenModule unit))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; GenModule unit -&gt; m (GenModule unit))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; GenModule unit -&gt; m (GenModule unit))
-&gt; Data (GenModule unit)
GenModule unit -&gt; DataType
GenModule unit -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; GenModule unit -&gt; GenModule unit
forall {unit}. Data unit =&gt; Typeable (GenModule unit)
forall unit. Data unit =&gt; GenModule unit -&gt; DataType
forall unit. Data unit =&gt; GenModule unit -&gt; Constr
forall unit.
Data unit =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; GenModule unit -&gt; GenModule unit
forall unit u.
Data unit =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; u
forall unit u.
Data unit =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; [u]
forall unit r r'.
Data unit =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
forall unit r r'.
Data unit =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
forall unit (m :: * -&gt; *).
(Data unit, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
forall unit (m :: * -&gt; *).
(Data unit, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
forall unit (c :: * -&gt; *).
Data unit =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenModule unit)
forall unit (c :: * -&gt; *).
Data unit =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenModule unit -&gt; c (GenModule unit)
forall unit (t :: * -&gt; *) (c :: * -&gt; *).
(Data unit, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenModule unit))
forall unit (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data unit, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenModule unit))
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenModule unit)
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenModule unit -&gt; c (GenModule unit)
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenModule unit))
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenModule unit))
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
$cgmapMo :: forall unit (m :: * -&gt; *).
(Data unit, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
$cgmapMp :: forall unit (m :: * -&gt; *).
(Data unit, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
$cgmapM :: forall unit (m :: * -&gt; *).
(Data unit, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenModule unit -&gt; m (GenModule unit)
gmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; u
$cgmapQi :: forall unit u.
Data unit =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; [u]
$cgmapQ :: forall unit u.
Data unit =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; GenModule unit -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
$cgmapQr :: forall unit r r'.
Data unit =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
$cgmapQl :: forall unit r r'.
Data unit =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenModule unit -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; GenModule unit -&gt; GenModule unit
$cgmapT :: forall unit.
Data unit =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; GenModule unit -&gt; GenModule unit
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenModule unit))
$cdataCast2 :: forall unit (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data unit, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenModule unit))
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenModule unit))
$cdataCast1 :: forall unit (t :: * -&gt; *) (c :: * -&gt; *).
(Data unit, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenModule unit))
dataTypeOf :: GenModule unit -&gt; DataType
$cdataTypeOf :: forall unit. Data unit =&gt; GenModule unit -&gt; DataType
toConstr :: GenModule unit -&gt; Constr
$ctoConstr :: forall unit. Data unit =&gt; GenModule unit -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenModule unit)
$cgunfold :: forall unit (c :: * -&gt; *).
Data unit =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenModule unit)
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenModule unit -&gt; c (GenModule unit)
$cgfoldl :: forall unit (c :: * -&gt; *).
Data unit =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenModule unit -&gt; c (GenModule unit)
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span id="local-6989586621680790959"><span id="local-6989586621680790961"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; GenModule a -&gt; GenModule b)
-&gt; (forall a b. a -&gt; GenModule b -&gt; GenModule a)
-&gt; Functor GenModule
forall a b. a -&gt; GenModule b -&gt; GenModule a
forall a b. (a -&gt; b) -&gt; GenModule a -&gt; GenModule b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; GenModule b -&gt; GenModule a
$c&lt;$ :: forall a b. a -&gt; GenModule b -&gt; GenModule a
fmap :: forall a b. (a -&gt; b) -&gt; GenModule a -&gt; GenModule b
$cfmap :: forall a b. (a -&gt; b) -&gt; GenModule a -&gt; GenModule b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-119"></span><span>
</span><span id="line-120"></span><span class="hs-comment">-- | A Module is a pair of a 'Unit' and a 'ModuleName'.</span><span>
</span><span id="line-121"></span><span class="hs-keyword">type</span><span> </span><span id="Module"><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-var">Module</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span>
</span><span id="line-122"></span><span>
</span><span id="line-123"></span><span class="hs-comment">-- | A 'InstalledModule' is a 'Module' whose unit is identified with an</span><span>
</span><span id="line-124"></span><span class="hs-comment">-- 'UnitId'.</span><span>
</span><span id="line-125"></span><span class="hs-keyword">type</span><span> </span><span id="InstalledModule"><span class="annot"><a href="GHC.Unit.Types.html#InstalledModule"><span class="hs-identifier hs-var">InstalledModule</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-126"></span><span>
</span><span id="line-127"></span><span class="hs-comment">-- | An `InstantiatedModule` is a 'Module' whose unit is identified with an `InstantiatedUnit`.</span><span>
</span><span id="line-128"></span><span class="hs-keyword">type</span><span> </span><span id="InstantiatedModule"><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedModule"><span class="hs-identifier hs-var">InstantiatedModule</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span><span>
</span><span id="line-129"></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span id="local-6989586621680791463"><span class="annot"><a href="GHC.Unit.Types.html#mkModule"><span class="hs-identifier hs-type">mkModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680791463"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791463"><span class="hs-identifier hs-type">u</span></a></span></span><span>
</span><span id="line-132"></span><span id="mkModule"><span class="annot"><span class="annottext">mkModule :: forall u. u -&gt; ModuleName -&gt; GenModule u
</span><a href="GHC.Unit.Types.html#mkModule"><span class="hs-identifier hs-var hs-var">mkModule</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">u -&gt; ModuleName -&gt; GenModule u
forall u. u -&gt; ModuleName -&gt; GenModule u
</span><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-var">Module</span></a></span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-135"></span><span>  </span><span id="local-6989586621680790952"><span class="annot"><span class="annottext">getUnique :: Module -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var hs-var hs-var hs-var">getUnique</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790950"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790950"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680790949"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790949"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var">unitFS</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790950"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; FastString
</span><a href="GHC.Data.FastString.html#appendFS"><span class="hs-operator hs-var">`appendFS`</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; FastString
</span><a href="GHC.Unit.Module.Name.html#moduleNameFS"><span class="hs-identifier hs-var">moduleNameFS</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790949"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-136"></span><span>
</span><span id="line-137"></span><span id="local-6989586621680791456"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790944"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791456"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791456"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-138"></span><span>  </span><span id="local-6989586621680790936"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; GenModule a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790934"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790934"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790933"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790933"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680790932"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790932"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; a -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790934"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790933"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">IO () -&gt; IO () -&gt; IO ()
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; m b -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E"><span class="hs-operator hs-var">&gt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; ModuleName -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790934"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790932"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-139"></span><span>  </span><span id="local-6989586621680790926"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO (GenModule a)
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790924"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790924"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621680790923"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790923"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO a
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790924"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">;</span><span> </span><span id="local-6989586621680790922"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790922"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO ModuleName
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790924"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">GenModule a -&gt; IO (GenModule a)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; ModuleName -&gt; GenModule a
forall u. u -&gt; ModuleName -&gt; GenModule u
</span><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-var">Module</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790923"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790922"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span><span id="local-6989586621680791448"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#NFData"><span class="hs-identifier hs-type">NFData</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791448"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-142"></span><span>  </span><span id="local-6989586621680790918"><span class="annot"><span class="annottext">rnf :: GenModule a -&gt; ()
</span><a href="../../deepseq/src/Control.DeepSeq.html#rnf"><span class="hs-identifier hs-var hs-var hs-var hs-var">rnf</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790916"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790916"><span class="hs-keyword hs-var">unit</span></a></span></span><span> </span><span id="local-6989586621680790915"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790915"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790916"><span class="hs-keyword hs-var">unit</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; () -&gt; ()
</span><span class="hs-operator hs-var">`seq`</span></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790915"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; () -&gt; ()
</span><span class="hs-operator hs-var">`seq`</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span>
</span><span id="line-143"></span><span>
</span><span id="line-144"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790912"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-145"></span><span>  </span><span id="local-6989586621680790910"><span class="annot"><span class="annottext">ppr :: Module -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprModule"><span class="hs-identifier hs-var">pprModule</span></a></span><span>
</span><span id="line-146"></span><span>
</span><span id="line-147"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790906"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstalledModule"><span class="hs-identifier hs-type">InstalledModule</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-148"></span><span>  </span><span id="local-6989586621680790904"><span class="annot"><span class="annottext">ppr :: InstalledModule -&gt; SDoc
</span><a href="#local-6989586621680790904"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790903"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790903"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680790902"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790902"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-149"></span><span>    </span><span class="annot"><span class="annottext">UnitId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790903"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
</span><a href="GHC.Unit.Module.Name.html#pprModuleName"><span class="hs-identifier hs-var">pprModuleName</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790902"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-150"></span><span>
</span><span id="line-151"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790896"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedModule"><span class="hs-identifier hs-type">InstantiatedModule</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-152"></span><span>  </span><span id="local-6989586621680790895"><span class="annot"><span class="annottext">ppr :: InstantiatedModule -&gt; SDoc
</span><a href="#local-6989586621680790895"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstantiatedModule -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprInstantiatedModule"><span class="hs-identifier hs-var">pprInstantiatedModule</span></a></span><span>
</span><span id="line-153"></span><span>
</span><span id="line-154"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790892"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-155"></span><span>    </span><span id="local-6989586621680790887"><span class="annot"><span class="annottext">ppr :: InstantiatedUnit -&gt; SDoc
</span><a href="#local-6989586621680790887"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680790886"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790886"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-156"></span><span>      </span><span class="hs-comment">-- getPprStyle $ \sty -&gt;</span><span>
</span><span id="line-157"></span><span>      </span><span class="annot"><span class="annottext">Indefinite UnitId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite UnitId
</span><a href="#local-6989586621680790885"><span class="hs-identifier hs-var">cid</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-158"></span><span>        </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[(ModuleName, Module)] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621680790882"><span class="hs-identifier hs-var">insts</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- pprIf</span><span>
</span><span id="line-159"></span><span>          </span><span class="hs-keyword">then</span><span>
</span><span id="line-160"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span>
</span><span id="line-161"></span><span>                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; [SDoc]) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-162"></span><span>                    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790877"><span class="hs-identifier hs-var">modname</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Module -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprModule"><span class="hs-identifier hs-var">pprModule</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680790875"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-163"></span><span>                    </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680790877"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790877"><span class="hs-identifier hs-var">modname</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790875"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680790875"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621680790882"><span class="hs-identifier hs-var">insts</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-164"></span><span>          </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-165"></span><span>     </span><span class="hs-keyword">where</span><span>
</span><span id="line-166"></span><span>      </span><span id="local-6989586621680790885"><span class="annot"><span class="annottext">cid :: Indefinite UnitId
</span><a href="#local-6989586621680790885"><span class="hs-identifier hs-var hs-var">cid</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; Indefinite UnitId
forall unit. GenInstantiatedUnit unit -&gt; Indefinite unit
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var hs-var">instUnitInstanceOf</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790886"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-167"></span><span>      </span><span id="local-6989586621680790882"><span class="annot"><span class="annottext">insts :: [(ModuleName, Module)]
</span><a href="#local-6989586621680790882"><span class="hs-identifier hs-var hs-var">insts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; [(ModuleName, Module)]
forall unit. GenInstantiatedUnit unit -&gt; GenInstantiations unit
</span><a href="GHC.Unit.Types.html#instUnitInsts"><span class="hs-identifier hs-var hs-var">instUnitInsts</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790886"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-168"></span><span>
</span><span id="line-169"></span><span>
</span><span id="line-170"></span><span class="annot"><a href="GHC.Unit.Types.html#pprModule"><span class="hs-identifier hs-type">pprModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-171"></span><span id="pprModule"><span class="annot"><span class="annottext">pprModule :: Module -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprModule"><span class="hs-identifier hs-var hs-var">pprModule</span></a></span></span><span> </span><span id="local-6989586621680790871"><span class="annot"><span class="annottext">mod :: Module
</span><a href="#local-6989586621680790871"><span class="hs-identifier hs-var">mod</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790870"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790870"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621680790869"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790869"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(PprStyle -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprStyle"><span class="hs-identifier hs-var">getPprStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle -&gt; SDoc
</span><a href="#local-6989586621680790867"><span class="hs-identifier hs-var">doc</span></a></span><span>
</span><span id="line-172"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-173"></span><span>  </span><span id="local-6989586621680790867"><span class="annot"><span class="annottext">doc :: PprStyle -&gt; SDoc
</span><a href="#local-6989586621680790867"><span class="hs-identifier hs-var hs-var">doc</span></a></span></span><span> </span><span id="local-6989586621680790864"><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680790864"><span class="hs-identifier hs-var">sty</span></a></span></span><span>
</span><span id="line-174"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">PprStyle -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#codeStyle"><span class="hs-identifier hs-var">codeStyle</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680790864"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-175"></span><span>        </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790870"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unit -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#mainUnit"><span class="hs-identifier hs-var">mainUnit</span></a></span><span>
</span><span id="line-176"></span><span>                </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="hs-comment">-- never qualify the main package in code</span><span>
</span><span id="line-177"></span><span>                </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">FastZString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ztext"><span class="hs-identifier hs-var">ztext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; FastZString
</span><a href="GHC.Data.FastString.html#zEncodeFS"><span class="hs-identifier hs-var">zEncodeFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var">unitFS</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790870"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span class="hs-special">)</span><span>
</span><span id="line-178"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
</span><a href="GHC.Unit.Module.Name.html#pprModuleName"><span class="hs-identifier hs-var">pprModuleName</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790869"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-179"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">PprStyle -&gt; QueryQualifyModule
</span><a href="GHC.Utils.Outputable.html#qualModule"><span class="hs-identifier hs-var">qualModule</span></a></span><span> </span><span class="annot"><span class="annottext">PprStyle
</span><a href="#local-6989586621680790864"><span class="hs-identifier hs-var">sty</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680790871"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-180"></span><span>        </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790870"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-181"></span><span>          </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#angleBrackets"><span class="hs-identifier hs-var">angleBrackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
</span><a href="GHC.Unit.Module.Name.html#pprModuleName"><span class="hs-identifier hs-var">pprModuleName</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790869"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-182"></span><span>          </span><span class="annot"><span class="annottext">Unit
</span><span class="hs-identifier">_</span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; Unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680790871"><span class="hs-identifier hs-var">mod</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
</span><a href="GHC.Unit.Module.Name.html#pprModuleName"><span class="hs-identifier hs-var">pprModuleName</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790869"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-183"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-184"></span><span>        </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
</span><a href="GHC.Unit.Module.Name.html#pprModuleName"><span class="hs-identifier hs-var">pprModuleName</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790869"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-185"></span><span>
</span><span id="line-186"></span><span>
</span><span id="line-187"></span><span class="annot"><a href="GHC.Unit.Types.html#pprInstantiatedModule"><span class="hs-identifier hs-type">pprInstantiatedModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedModule"><span class="hs-identifier hs-type">InstantiatedModule</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-188"></span><span id="pprInstantiatedModule"><span class="annot"><span class="annottext">pprInstantiatedModule :: InstantiatedModule -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprInstantiatedModule"><span class="hs-identifier hs-var hs-var">pprInstantiatedModule</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790857"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790857"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span id="local-6989586621680790856"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790856"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-189"></span><span>    </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790857"><span class="hs-identifier hs-var">uid</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790856"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-190"></span><span>
</span><span id="line-191"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-192"></span><span class="hs-comment">-- UNITS</span><span>
</span><span id="line-193"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-194"></span><span>
</span><span id="line-195"></span><span class="hs-comment">-- | A unit identifier identifies a (possibly partially) instantiated library.</span><span>
</span><span id="line-196"></span><span class="hs-comment">-- It is primarily used as part of 'Module', which in turn is used in 'Name',</span><span>
</span><span id="line-197"></span><span class="hs-comment">-- which is used to give names to entities when typechecking.</span><span>
</span><span id="line-198"></span><span class="hs-comment">--</span><span>
</span><span id="line-199"></span><span class="hs-comment">-- There are two possible forms for a 'Unit':</span><span>
</span><span id="line-200"></span><span class="hs-comment">--</span><span>
</span><span id="line-201"></span><span class="hs-comment">-- 1) It can be a 'RealUnit', in which case we just have a 'DefUnitId' that</span><span>
</span><span id="line-202"></span><span class="hs-comment">-- uniquely identifies some fully compiled, installed library we have on disk.</span><span>
</span><span id="line-203"></span><span class="hs-comment">--</span><span>
</span><span id="line-204"></span><span class="hs-comment">-- 2) It can be an 'VirtUnit'. When we are typechecking a library with missing</span><span>
</span><span id="line-205"></span><span class="hs-comment">-- holes, we may need to instantiate a library on the fly (in which case we</span><span>
</span><span id="line-206"></span><span class="hs-comment">-- don't have any on-disk representation.)  In that case, you have an</span><span>
</span><span id="line-207"></span><span class="hs-comment">-- 'InstantiatedUnit', which explicitly records the instantiation, so that we</span><span>
</span><span id="line-208"></span><span class="hs-comment">-- can substitute over it.</span><span>
</span><span id="line-209"></span><span class="hs-keyword">data</span><span> </span><span id="GenUnit"><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-var">GenUnit</span></a></span></span><span> </span><span id="local-6989586621680791403"><span class="annot"><a href="#local-6989586621680791403"><span class="hs-identifier hs-type">uid</span></a></span></span><span>
</span><span id="line-210"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span id="RealUnit"><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span></span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791403"><span class="hs-identifier hs-type">uid</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-211"></span><span>      </span><span class="hs-comment">-- ^ Installed definite unit (either a fully instantiated unit or a closed unit)</span><span>
</span><span id="line-212"></span><span>
</span><span id="line-213"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="VirtUnit"><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-var">VirtUnit</span></a></span></span><span> </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier hs-type">GenInstantiatedUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791403"><span class="hs-identifier hs-type">uid</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-214"></span><span>      </span><span class="hs-comment">-- ^ Virtual unit instantiated on-the-fly. It may be definite if all the</span><span>
</span><span id="line-215"></span><span>      </span><span class="hs-comment">-- holes are instantiated but we don't have code objects for it.</span><span>
</span><span id="line-216"></span><span>
</span><span id="line-217"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="HoleUnit"><span class="annot"><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span></span><span>
</span><span id="line-218"></span><span>      </span><span class="hs-comment">-- ^ Fake hole unit</span><span>
</span><span id="line-219"></span><span>
</span><span id="line-220"></span><span class="hs-comment">-- | An instantiated unit.</span><span>
</span><span id="line-221"></span><span class="hs-comment">--</span><span>
</span><span id="line-222"></span><span class="hs-comment">-- It identifies an indefinite library (with holes) that has been instantiated.</span><span>
</span><span id="line-223"></span><span class="hs-comment">--</span><span>
</span><span id="line-224"></span><span class="hs-comment">-- This unit may be indefinite or not (i.e. with remaining holes or not). If it</span><span>
</span><span id="line-225"></span><span class="hs-comment">-- is definite, we don't know if it has already been compiled and installed in a</span><span>
</span><span id="line-226"></span><span class="hs-comment">-- database. Nevertheless, we have a mechanism called &quot;improvement&quot; to try to</span><span>
</span><span id="line-227"></span><span class="hs-comment">-- match a fully instantiated unit with existing compiled and installed units:</span><span>
</span><span id="line-228"></span><span class="hs-comment">-- see Note [VirtUnit to RealUnit improvement].</span><span>
</span><span id="line-229"></span><span class="hs-comment">--</span><span>
</span><span id="line-230"></span><span class="hs-comment">-- An indefinite unit identifier pretty-prints to something like</span><span>
</span><span id="line-231"></span><span class="hs-comment">-- @p[H=&lt;H&gt;,A=aimpl:A&gt;]@ (@p@ is the 'IndefUnitId', and the</span><span>
</span><span id="line-232"></span><span class="hs-comment">-- brackets enclose the module substitution).</span><span>
</span><span id="line-233"></span><span class="hs-keyword">data</span><span> </span><span id="GenInstantiatedUnit"><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier hs-var">GenInstantiatedUnit</span></a></span></span><span> </span><span id="local-6989586621680791436"><span class="annot"><a href="#local-6989586621680791436"><span class="hs-keyword hs-type">unit</span></a></span></span><span>
</span><span id="line-234"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span id="InstantiatedUnit"><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-var">InstantiatedUnit</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-235"></span><span>        </span><span class="hs-comment">-- | A private, uniquely identifying representation of</span><span>
</span><span id="line-236"></span><span>        </span><span class="hs-comment">-- an InstantiatedUnit. This string is completely private to GHC</span><span>
</span><span id="line-237"></span><span>        </span><span class="hs-comment">-- and is just used to get a unique.</span><span>
</span><span id="line-238"></span><span>        </span><span id="instUnitFS"><span class="annot"><span class="annottext">forall unit. GenInstantiatedUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var hs-var">instUnitFS</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-239"></span><span>        </span><span class="hs-comment">-- | Cached unique of 'unitFS'.</span><span>
</span><span id="line-240"></span><span>        </span><span id="instUnitKey"><span class="annot"><span class="annottext">forall unit. GenInstantiatedUnit unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#instUnitKey"><span class="hs-identifier hs-var hs-var">instUnitKey</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-241"></span><span>        </span><span class="hs-comment">-- | The indefinite unit being instantiated.</span><span>
</span><span id="line-242"></span><span>        </span><span id="instUnitInstanceOf"><span class="annot"><span class="annottext">forall unit. GenInstantiatedUnit unit -&gt; Indefinite unit
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var hs-var">instUnitInstanceOf</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791436"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-243"></span><span>        </span><span class="hs-comment">-- | The sorted (by 'ModuleName') instantiations of this unit.</span><span>
</span><span id="line-244"></span><span>        </span><span id="instUnitInsts"><span class="annot"><span class="annottext">forall unit. GenInstantiatedUnit unit -&gt; GenInstantiations unit
</span><a href="GHC.Unit.Types.html#instUnitInsts"><span class="hs-identifier hs-var hs-var">instUnitInsts</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiations"><span class="hs-identifier hs-type">GenInstantiations</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791436"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-245"></span><span>        </span><span class="hs-comment">-- | A cache of the free module holes of 'instUnitInsts'.</span><span>
</span><span id="line-246"></span><span>        </span><span class="hs-comment">-- This lets us efficiently tell if a 'InstantiatedUnit' has been</span><span>
</span><span id="line-247"></span><span>        </span><span class="hs-comment">-- fully instantiated (empty set of free module holes)</span><span>
</span><span id="line-248"></span><span>        </span><span class="hs-comment">-- and whether or not a substitution can have any effect.</span><span>
</span><span id="line-249"></span><span>        </span><span id="instUnitHoles"><span class="annot"><span class="annottext">forall unit. GenInstantiatedUnit unit -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#instUnitHoles"><span class="hs-identifier hs-var hs-var">instUnitHoles</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span>
</span><span id="line-250"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-251"></span><span>
</span><span id="line-252"></span><span class="hs-keyword">type</span><span> </span><span id="Unit"><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-var">Unit</span></a></span></span><span>             </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span>             </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-253"></span><span class="hs-keyword">type</span><span> </span><span id="InstantiatedUnit"><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-var">InstantiatedUnit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier hs-type">GenInstantiatedUnit</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-254"></span><span>
</span><span id="line-255"></span><span class="hs-keyword">type</span><span> </span><span id="GenInstantiations"><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiations"><span class="hs-identifier hs-var">GenInstantiations</span></a></span></span><span> </span><span id="local-6989586621680790849"><span class="annot"><a href="#local-6989586621680790849"><span class="hs-keyword hs-type">unit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680790849"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-256"></span><span class="hs-keyword">type</span><span> </span><span id="Instantiations"><span class="annot"><a href="GHC.Unit.Types.html#Instantiations"><span class="hs-identifier hs-var">Instantiations</span></a></span></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiations"><span class="hs-identifier hs-type">GenInstantiations</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-257"></span><span>
</span><span id="line-258"></span><span class="annot"><a href="GHC.Unit.Types.html#holeUnique"><span class="hs-identifier hs-type">holeUnique</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span>
</span><span id="line-259"></span><span id="holeUnique"><span class="annot"><span class="annottext">holeUnique :: Unique
</span><a href="GHC.Unit.Types.html#holeUnique"><span class="hs-identifier hs-var hs-var">holeUnique</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="GHC.Unit.Types.html#holeFS"><span class="hs-identifier hs-var">holeFS</span></a></span><span>
</span><span id="line-260"></span><span>
</span><span id="line-261"></span><span class="annot"><a href="GHC.Unit.Types.html#holeFS"><span class="hs-identifier hs-type">holeFS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-262"></span><span id="holeFS"><span class="annot"><span class="annottext">holeFS :: FastString
</span><a href="GHC.Unit.Types.html#holeFS"><span class="hs-identifier hs-var hs-var">holeFS</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;hole&gt;&quot;</span></span><span>
</span><span id="line-263"></span><span>
</span><span id="line-264"></span><span>
</span><span id="line-265"></span><span id="local-6989586621680791425"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790843"><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier hs-type">GenInstantiatedUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791425"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-266"></span><span>  </span><span id="local-6989586621680790840"><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790840"><span class="hs-identifier hs-var">u1</span></a></span></span><span> </span><span id="local-6989586621680790839"><span class="annot"><span class="annottext">== :: GenInstantiatedUnit unit -&gt; GenInstantiatedUnit unit -&gt; Bool
</span><span class="hs-operator hs-var hs-var hs-var hs-var">==</span></span></span><span> </span><span id="local-6989586621680790838"><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790838"><span class="hs-identifier hs-var">u2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit -&gt; Unique
forall unit. GenInstantiatedUnit unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#instUnitKey"><span class="hs-identifier hs-var hs-var">instUnitKey</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790840"><span class="hs-identifier hs-var">u1</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; Unique -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit -&gt; Unique
forall unit. GenInstantiatedUnit unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#instUnitKey"><span class="hs-identifier hs-var hs-var">instUnitKey</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790838"><span class="hs-identifier hs-var">u2</span></a></span></span><span>
</span><span id="line-267"></span><span>
</span><span id="line-268"></span><span id="local-6989586621680791424"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790823"><span id="local-6989586621680790825"><span id="local-6989586621680790827"><span id="local-6989586621680790829"><span id="local-6989586621680790831"><span id="local-6989586621680790833"><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier hs-type">GenInstantiatedUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791424"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-269"></span><span>  </span><span id="local-6989586621680790821"><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790821"><span class="hs-identifier hs-var">u1</span></a></span></span><span> </span><span id="local-6989586621680790820"><span class="annot"><span class="annottext">compare :: GenInstantiatedUnit unit -&gt; GenInstantiatedUnit unit -&gt; Ordering
</span><span class="hs-operator hs-var hs-var hs-var hs-var">`compare`</span></span></span><span> </span><span id="local-6989586621680790818"><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790818"><span class="hs-identifier hs-var">u2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit -&gt; FastString
forall unit. GenInstantiatedUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var hs-var">instUnitFS</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790821"><span class="hs-identifier hs-var">u1</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit -&gt; FastString
forall unit. GenInstantiatedUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var hs-var">instUnitFS</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790818"><span class="hs-identifier hs-var">u2</span></a></span></span><span>
</span><span id="line-270"></span><span>
</span><span id="line-271"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790815"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-272"></span><span>  </span><span id="local-6989586621680790803"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; InstantiatedUnit -&gt; IO ()
</span><a href="#local-6989586621680790803"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790802"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790802"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span id="local-6989586621680790801"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790801"><span class="hs-identifier hs-var">indef</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-273"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; Indefinite UnitId -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790802"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; Indefinite UnitId
forall unit. GenInstantiatedUnit unit -&gt; Indefinite unit
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var hs-var">instUnitInstanceOf</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790801"><span class="hs-identifier hs-var">indef</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-274"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; [(ModuleName, Module)] -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790802"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; [(ModuleName, Module)]
forall unit. GenInstantiatedUnit unit -&gt; GenInstantiations unit
</span><a href="GHC.Unit.Types.html#instUnitInsts"><span class="hs-identifier hs-var hs-var">instUnitInsts</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790801"><span class="hs-identifier hs-var">indef</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-275"></span><span>  </span><span id="local-6989586621680790789"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO InstantiatedUnit
</span><a href="#local-6989586621680790789"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790788"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790788"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-276"></span><span>    </span><span id="local-6989586621680790787"><span class="annot"><span class="annottext">Indefinite UnitId
</span><a href="#local-6989586621680790787"><span class="hs-identifier hs-var">cid</span></a></span></span><span>   </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO (Indefinite UnitId)
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790788"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-277"></span><span>    </span><span id="local-6989586621680790786"><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621680790786"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO [(ModuleName, Module)]
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790788"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-278"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680790785"><span class="annot"><span class="annottext">fs :: FastString
</span><a href="#local-6989586621680790785"><span class="hs-identifier hs-var hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; FastString
</span><a href="GHC.Unit.Types.html#mkInstantiatedUnitHash"><span class="hs-identifier hs-var">mkInstantiatedUnitHash</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite UnitId
</span><a href="#local-6989586621680790787"><span class="hs-identifier hs-var">cid</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621680790786"><span class="hs-identifier hs-var">insts</span></a></span><span>
</span><span id="line-279"></span><span>    </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; IO InstantiatedUnit
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit :: forall unit.
FastString
-&gt; Unique
-&gt; Indefinite unit
-&gt; GenInstantiations unit
-&gt; UniqDSet ModuleName
-&gt; GenInstantiatedUnit unit
</span><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-280"></span><span>            </span><span class="annot"><span class="annottext">instUnitInstanceOf :: Indefinite UnitId
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var">instUnitInstanceOf</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Indefinite UnitId
</span><a href="#local-6989586621680790787"><span class="hs-identifier hs-var">cid</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-281"></span><span>            </span><span class="annot"><span class="annottext">instUnitInsts :: [(ModuleName, Module)]
</span><a href="GHC.Unit.Types.html#instUnitInsts"><span class="hs-identifier hs-var">instUnitInsts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621680790786"><span class="hs-identifier hs-var">insts</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-282"></span><span>            </span><span class="annot"><span class="annottext">instUnitHoles :: UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#instUnitHoles"><span class="hs-identifier hs-var">instUnitHoles</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[UniqDSet ModuleName] -&gt; UniqDSet ModuleName
forall a. [UniqDSet a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unionManyUniqDSets"><span class="hs-identifier hs-var">unionManyUniqDSets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((ModuleName, Module) -&gt; UniqDSet ModuleName)
-&gt; [(ModuleName, Module)] -&gt; [UniqDSet ModuleName]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Module -&gt; UniqDSet ModuleName
forall u. GenModule (GenUnit u) -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#moduleFreeHoles"><span class="hs-identifier hs-var">moduleFreeHoles</span></a></span><span class="annot"><span class="annottext">(Module -&gt; UniqDSet ModuleName)
-&gt; ((ModuleName, Module) -&gt; Module)
-&gt; (ModuleName, Module)
-&gt; UniqDSet ModuleName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span class="annot"><span class="annottext">(ModuleName, Module) -&gt; Module
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(ModuleName, Module)]
</span><a href="#local-6989586621680790786"><span class="hs-identifier hs-var">insts</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-283"></span><span>            </span><span class="annot"><span class="annottext">instUnitFS :: FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var">instUnitFS</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790785"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-284"></span><span>            </span><span class="annot"><span class="annottext">instUnitKey :: Unique
</span><a href="GHC.Unit.Types.html#instUnitKey"><span class="hs-identifier hs-var">instUnitKey</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790785"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-285"></span><span>           </span><span class="hs-special">}</span><span>
</span><span id="line-286"></span><span>
</span><span id="line-287"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790780"><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-288"></span><span>  </span><span id="local-6989586621680790778"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790778"><span class="hs-identifier hs-var">uid1</span></a></span></span><span> </span><span id="local-6989586621680790777"><span class="annot"><span class="annottext">== :: Unit -&gt; Unit -&gt; Bool
</span><span class="hs-operator hs-var hs-var hs-var hs-var">==</span></span></span><span> </span><span id="local-6989586621680790776"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790776"><span class="hs-identifier hs-var">uid2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-var">unitUnique</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790778"><span class="hs-identifier hs-var">uid1</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; Unique -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-var">unitUnique</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790776"><span class="hs-identifier hs-var">uid2</span></a></span><span>
</span><span id="line-289"></span><span>
</span><span id="line-290"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-291"></span><span>  </span><span id="local-6989586621680790772"><span class="annot"><span class="annottext">getUnique :: Unit -&gt; Unique
</span><a href="#local-6989586621680790772"><span class="hs-identifier hs-var hs-var hs-var hs-var">getUnique</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-var">unitUnique</span></a></span><span>
</span><span id="line-292"></span><span>
</span><span id="line-293"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790757"><span id="local-6989586621680790759"><span id="local-6989586621680790761"><span id="local-6989586621680790763"><span id="local-6989586621680790765"><span id="local-6989586621680790767"><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-294"></span><span>  </span><span id="local-6989586621680790756"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790756"><span class="hs-identifier hs-var">nm1</span></a></span></span><span> </span><span id="local-6989586621680790755"><span class="annot"><span class="annottext">compare :: Unit -&gt; Unit -&gt; Ordering
</span><a href="#local-6989586621680790755"><span class="hs-operator hs-var hs-var hs-var hs-var">`compare`</span></a></span></span><span> </span><span id="local-6989586621680790754"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790754"><span class="hs-identifier hs-var">nm2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unit -&gt; Ordering
</span><a href="GHC.Unit.Types.html#stableUnitCmp"><span class="hs-identifier hs-var">stableUnitCmp</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790756"><span class="hs-identifier hs-var">nm1</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790754"><span class="hs-identifier hs-var">nm2</span></a></span><span>
</span><span id="line-295"></span><span>
</span><span id="line-296"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790725"><span id="local-6989586621680790727"><span id="local-6989586621680790729"><span id="local-6989586621680790731"><span id="local-6989586621680790733"><span id="local-6989586621680790735"><span id="local-6989586621680790737"><span id="local-6989586621680790739"><span id="local-6989586621680790741"><span id="local-6989586621680790743"><span id="local-6989586621680790748"><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span></span></span></span></span></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-297"></span><span>  </span><span class="hs-comment">-- don't traverse?</span><span>
</span><span id="line-298"></span><span>  </span><span id="local-6989586621680790724"><span class="annot"><span class="annottext">toConstr :: Unit -&gt; Constr
</span><a href="../../base/src/Data.Data.html#toConstr"><span class="hs-identifier hs-var hs-var hs-var hs-var">toConstr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr
</span><a href="GHC.Utils.Misc.html#abstractConstr"><span class="hs-identifier hs-var">abstractConstr</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unit&quot;</span></span><span>
</span><span id="line-299"></span><span>  </span><span id="local-6989586621680790719"><span class="annot"><span class="annottext">gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c Unit
</span><a href="../../base/src/Data.Data.html#gunfold"><span class="hs-identifier hs-var hs-var hs-var hs-var">gunfold</span></a></span></span><span> </span><span class="annot"><span class="annottext">forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">forall r. r -&gt; c r
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr -&gt; c Unit
forall a. HasCallStack =&gt; String -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;gunfold&quot;</span></span><span>
</span><span id="line-300"></span><span>  </span><span id="local-6989586621680790716"><span class="annot"><span class="annottext">dataTypeOf :: Unit -&gt; DataType
</span><a href="../../base/src/Data.Data.html#dataTypeOf"><span class="hs-identifier hs-var hs-var hs-var hs-var">dataTypeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; DataType
</span><a href="../../base/src/Data.Data.html#mkNoRepType"><span class="hs-identifier hs-var">mkNoRepType</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unit&quot;</span></span><span>
</span><span id="line-301"></span><span>
</span><span id="line-302"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#NFData"><span class="hs-identifier hs-type">NFData</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-303"></span><span>  </span><span id="local-6989586621680790711"><span class="annot"><span class="annottext">rnf :: Unit -&gt; ()
</span><a href="#local-6989586621680790711"><span class="hs-identifier hs-var hs-var hs-var hs-var">rnf</span></a></span></span><span> </span><span id="local-6989586621680790710"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790710"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790710"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; () -&gt; ()
</span><span class="hs-operator hs-var">`seq`</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-304"></span><span>
</span><span id="line-305"></span><span class="hs-comment">-- | Compares unit ids lexically, rather than by their 'Unique's</span><span>
</span><span id="line-306"></span><span class="annot"><a href="GHC.Unit.Types.html#stableUnitCmp"><span class="hs-identifier hs-type">stableUnitCmp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span><span>
</span><span id="line-307"></span><span id="stableUnitCmp"><span class="annot"><span class="annottext">stableUnitCmp :: Unit -&gt; Unit -&gt; Ordering
</span><a href="GHC.Unit.Types.html#stableUnitCmp"><span class="hs-identifier hs-var hs-var">stableUnitCmp</span></a></span></span><span> </span><span id="local-6989586621680790709"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790709"><span class="hs-identifier hs-var">p1</span></a></span></span><span> </span><span id="local-6989586621680790708"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790708"><span class="hs-identifier hs-var">p2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var">unitFS</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790709"><span class="hs-identifier hs-var">p1</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var">unitFS</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790708"><span class="hs-identifier hs-var">p2</span></a></span><span>
</span><span id="line-308"></span><span>
</span><span id="line-309"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790705"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-310"></span><span>   </span><span id="local-6989586621680790704"><span class="annot"><span class="annottext">ppr :: Unit -&gt; SDoc
</span><a href="#local-6989586621680790704"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680790703"><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790703"><span class="hs-identifier hs-var">pk</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprUnit"><span class="hs-identifier hs-var">pprUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="#local-6989586621680790703"><span class="hs-identifier hs-var">pk</span></a></span><span>
</span><span id="line-311"></span><span>
</span><span id="line-312"></span><span class="annot"><a href="GHC.Unit.Types.html#pprUnit"><span class="hs-identifier hs-type">pprUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-313"></span><span id="pprUnit"><span class="annot"><span class="annottext">pprUnit :: Unit -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprUnit"><span class="hs-identifier hs-var hs-var">pprUnit</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span id="local-6989586621680790701"><span class="annot"><span class="annottext">Definite UnitId
</span><a href="#local-6989586621680790701"><span class="hs-identifier hs-var">uid</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Definite UnitId
</span><a href="#local-6989586621680790701"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-314"></span><span class="annot"><a href="GHC.Unit.Types.html#pprUnit"><span class="hs-identifier hs-var">pprUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790700"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790700"><span class="hs-identifier hs-var">uid</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790700"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-315"></span><span class="annot"><a href="GHC.Unit.Types.html#pprUnit"><span class="hs-identifier hs-var">pprUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="GHC.Unit.Types.html#holeFS"><span class="hs-identifier hs-var">holeFS</span></a></span><span>
</span><span id="line-316"></span><span>
</span><span id="line-317"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790694"><span id="local-6989586621680790697"><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-318"></span><span>    </span><span id="local-6989586621680790692"><span class="annot"><span class="annottext">show :: Unit -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var hs-var hs-var hs-var">show</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; String
</span><a href="GHC.Unit.Types.html#unitString"><span class="hs-identifier hs-var">unitString</span></a></span><span>
</span><span id="line-319"></span><span>
</span><span id="line-320"></span><span class="hs-comment">-- Performance: would prefer to have a NameCache like thing</span><span>
</span><span id="line-321"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790688"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-322"></span><span>  </span><span id="local-6989586621680790677"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; Unit -&gt; IO ()
</span><a href="#local-6989586621680790677"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790676"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790676"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span id="local-6989586621680790675"><span class="annot"><span class="annottext">Definite UnitId
</span><a href="#local-6989586621680790675"><span class="hs-identifier hs-var">def_uid</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-323"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; Word8 -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#putByte"><span class="hs-identifier hs-var">putByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790676"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-324"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; Definite UnitId -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790676"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Definite UnitId
</span><a href="#local-6989586621680790675"><span class="hs-identifier hs-var">def_uid</span></a></span><span>
</span><span id="line-325"></span><span>  </span><span class="annot"><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span id="local-6989586621680790673"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790673"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790672"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790672"><span class="hs-identifier hs-var">indef_uid</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-326"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; Word8 -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#putByte"><span class="hs-identifier hs-var">putByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790673"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">1</span></span><span>
</span><span id="line-327"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; InstantiatedUnit -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790673"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790672"><span class="hs-identifier hs-var">indef_uid</span></a></span><span>
</span><span id="line-328"></span><span>  </span><span class="annot"><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span id="local-6989586621680790671"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790671"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-329"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; Word8 -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#putByte"><span class="hs-identifier hs-var">putByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790671"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">2</span></span><span>
</span><span id="line-330"></span><span>  </span><span id="local-6989586621680790656"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO Unit
</span><a href="#local-6989586621680790656"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790655"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790655"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621680790654"><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680790654"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO Word8
</span><a href="GHC.Utils.Binary.html#getByte"><span class="hs-identifier hs-var">getByte</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790655"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-331"></span><span>              </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621680790654"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-332"></span><span>                </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(Definite UnitId -&gt; Unit) -&gt; IO (Definite UnitId) -&gt; IO Unit
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BinHandle -&gt; IO (Definite UnitId)
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790655"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-333"></span><span>                </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InstantiatedUnit -&gt; Unit) -&gt; IO InstantiatedUnit -&gt; IO Unit
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; Unit
forall uid. GenInstantiatedUnit uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-var">VirtUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BinHandle -&gt; IO InstantiatedUnit
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790655"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-334"></span><span>                </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unit -&gt; IO Unit
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
forall uid. GenUnit uid
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>
</span><span id="line-335"></span><span>
</span><span id="line-336"></span><span id="local-6989586621680791420"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790650"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791420"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791420"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-337"></span><span>  </span><span id="local-6989586621680790647"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; Indefinite unit -&gt; IO ()
</span><a href="#local-6989586621680790647"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790646"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790646"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span id="local-6989586621680790644"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790644"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe UnitPprInfo
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; unit -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790646"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790644"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-338"></span><span>  </span><span id="local-6989586621680790640"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO (Indefinite unit)
</span><a href="#local-6989586621680790640"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790639"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790639"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621680790638"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790638"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO unit
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790639"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">Indefinite unit -&gt; IO (Indefinite unit)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">unit -&gt; Maybe UnitPprInfo -&gt; Indefinite unit
forall unit. unit -&gt; Maybe UnitPprInfo -&gt; Indefinite unit
</span><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-var">Indefinite</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790638"><span class="hs-identifier hs-var">fs</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe UnitPprInfo
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span></span><span>
</span><span id="line-339"></span><span>
</span><span id="line-340"></span><span>
</span><span id="line-341"></span><span>
</span><span id="line-342"></span><span class="hs-comment">-- | Retrieve the set of free module holes of a 'Unit'.</span><span>
</span><span id="line-343"></span><span id="local-6989586621680791398"><span class="annot"><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier hs-type">unitFreeModuleHoles</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791398"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span></span><span>
</span><span id="line-344"></span><span id="unitFreeModuleHoles"><span class="annot"><span class="annottext">unitFreeModuleHoles :: forall u. GenUnit u -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier hs-var hs-var">unitFreeModuleHoles</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790637"><span class="annot"><span class="annottext">GenInstantiatedUnit u
</span><a href="#local-6989586621680790637"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit u -&gt; UniqDSet ModuleName
forall unit. GenInstantiatedUnit unit -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#instUnitHoles"><span class="hs-identifier hs-var hs-var">instUnitHoles</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit u
</span><a href="#local-6989586621680790637"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-345"></span><span class="annot"><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier hs-var">unitFreeModuleHoles</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Definite u
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDSet ModuleName
forall a. UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier hs-var">emptyUniqDSet</span></a></span><span>
</span><span id="line-346"></span><span class="annot"><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier hs-var">unitFreeModuleHoles</span></a></span><span> </span><span class="annot"><span class="annottext">GenUnit u
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDSet ModuleName
forall a. UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier hs-var">emptyUniqDSet</span></a></span><span>
</span><span id="line-347"></span><span>
</span><span id="line-348"></span><span class="hs-comment">-- | Calculate the free holes of a 'Module'.  If this set is non-empty,</span><span>
</span><span id="line-349"></span><span class="hs-comment">-- this module was defined in an indefinite library that had required</span><span>
</span><span id="line-350"></span><span class="hs-comment">-- signatures.</span><span>
</span><span id="line-351"></span><span class="hs-comment">--</span><span>
</span><span id="line-352"></span><span class="hs-comment">-- If a module has free holes, that means that substitutions can operate on it;</span><span>
</span><span id="line-353"></span><span class="hs-comment">-- if it has no free holes, substituting over a module has no effect.</span><span>
</span><span id="line-354"></span><span id="local-6989586621680791416"><span class="annot"><a href="GHC.Unit.Types.html#moduleFreeHoles"><span class="hs-identifier hs-type">moduleFreeHoles</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791416"><span class="hs-identifier hs-type">u</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span></span><span>
</span><span id="line-355"></span><span id="moduleFreeHoles"><span class="annot"><span class="annottext">moduleFreeHoles :: forall u. GenModule (GenUnit u) -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#moduleFreeHoles"><span class="hs-identifier hs-var hs-var">moduleFreeHoles</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="annot"><span class="annottext">GenUnit u
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span> </span><span id="local-6989586621680790633"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790633"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ModuleName -&gt; UniqDSet ModuleName
forall a. Uniquable a =&gt; a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unitUniqDSet"><span class="hs-identifier hs-var">unitUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790633"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-356"></span><span class="annot"><a href="GHC.Unit.Types.html#moduleFreeHoles"><span class="hs-identifier hs-var">moduleFreeHoles</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span id="local-6989586621680790631"><span class="annot"><span class="annottext">GenUnit u
</span><a href="#local-6989586621680790631"><span class="hs-identifier hs-var">u</span></a></span></span><span>        </span><span class="annot"><span class="annottext">ModuleName
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenUnit u -&gt; UniqDSet ModuleName
forall u. GenUnit u -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier hs-var">unitFreeModuleHoles</span></a></span><span> </span><span class="annot"><span class="annottext">GenUnit u
</span><a href="#local-6989586621680790631"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-357"></span><span>
</span><span id="line-358"></span><span>
</span><span id="line-359"></span><span class="hs-comment">-- | Create a new 'GenInstantiatedUnit' given an explicit module substitution.</span><span>
</span><span id="line-360"></span><span id="local-6989586621680791393"><span class="annot"><a href="GHC.Unit.Types.html#mkGenInstantiatedUnit"><span class="hs-identifier hs-type">mkGenInstantiatedUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791393"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791393"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiations"><span class="hs-identifier hs-type">GenInstantiations</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791393"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenInstantiatedUnit"><span class="hs-identifier hs-type">GenInstantiatedUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791393"><span class="hs-keyword hs-type">unit</span></a></span></span><span>
</span><span id="line-361"></span><span id="mkGenInstantiatedUnit"><span class="annot"><span class="annottext">mkGenInstantiatedUnit :: forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; GenInstantiations unit
-&gt; GenInstantiatedUnit unit
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnit"><span class="hs-identifier hs-var hs-var">mkGenInstantiatedUnit</span></a></span></span><span> </span><span id="local-6989586621680790629"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790629"><span class="hs-identifier hs-var">gunitFS</span></a></span></span><span> </span><span id="local-6989586621680790628"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790628"><span class="hs-identifier hs-var">cid</span></a></span></span><span> </span><span id="local-6989586621680790627"><span class="annot"><span class="annottext">GenInstantiations unit
</span><a href="#local-6989586621680790627"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-362"></span><span>    </span><span class="annot"><span class="annottext">InstantiatedUnit :: forall unit.
FastString
-&gt; Unique
-&gt; Indefinite unit
-&gt; GenInstantiations unit
-&gt; UniqDSet ModuleName
-&gt; GenInstantiatedUnit unit
</span><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-363"></span><span>        </span><span class="annot"><span class="annottext">instUnitInstanceOf :: Indefinite unit
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var">instUnitInstanceOf</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790628"><span class="hs-identifier hs-var">cid</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-364"></span><span>        </span><span class="annot"><span class="annottext">instUnitInsts :: GenInstantiations unit
</span><a href="GHC.Unit.Types.html#instUnitInsts"><span class="hs-identifier hs-var">instUnitInsts</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenInstantiations unit
</span><a href="#local-6989586621680790626"><span class="hs-identifier hs-var">sorted_insts</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-365"></span><span>        </span><span class="annot"><span class="annottext">instUnitHoles :: UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#instUnitHoles"><span class="hs-identifier hs-var">instUnitHoles</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[UniqDSet ModuleName] -&gt; UniqDSet ModuleName
forall a. [UniqDSet a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unionManyUniqDSets"><span class="hs-identifier hs-var">unionManyUniqDSets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((ModuleName, GenModule (GenUnit unit)) -&gt; UniqDSet ModuleName)
-&gt; GenInstantiations unit -&gt; [UniqDSet ModuleName]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenModule (GenUnit unit) -&gt; UniqDSet ModuleName
forall u. GenModule (GenUnit u) -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#moduleFreeHoles"><span class="hs-identifier hs-var">moduleFreeHoles</span></a></span><span class="annot"><span class="annottext">(GenModule (GenUnit unit) -&gt; UniqDSet ModuleName)
-&gt; ((ModuleName, GenModule (GenUnit unit))
    -&gt; GenModule (GenUnit unit))
-&gt; (ModuleName, GenModule (GenUnit unit))
-&gt; UniqDSet ModuleName
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span class="annot"><span class="annottext">(ModuleName, GenModule (GenUnit unit)) -&gt; GenModule (GenUnit unit)
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">GenInstantiations unit
</span><a href="#local-6989586621680790627"><span class="hs-identifier hs-var">insts</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-366"></span><span>        </span><span class="annot"><span class="annottext">instUnitFS :: FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var">instUnitFS</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790625"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-367"></span><span>        </span><span class="annot"><span class="annottext">instUnitKey :: Unique
</span><a href="GHC.Unit.Types.html#instUnitKey"><span class="hs-identifier hs-var">instUnitKey</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790625"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-368"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-369"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-370"></span><span>     </span><span id="local-6989586621680790625"><span class="annot"><span class="annottext">fs :: FastString
</span><a href="#local-6989586621680790625"><span class="hs-identifier hs-var hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(unit -&gt; FastString)
-&gt; Indefinite unit -&gt; GenInstantiations unit -&gt; FastString
forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; [(ModuleName, GenModule (GenUnit unit))]
-&gt; FastString
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnitHash"><span class="hs-identifier hs-var">mkGenInstantiatedUnitHash</span></a></span><span> </span><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790629"><span class="hs-identifier hs-var">gunitFS</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790628"><span class="hs-identifier hs-var">cid</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiations unit
</span><a href="#local-6989586621680790626"><span class="hs-identifier hs-var">sorted_insts</span></a></span><span>
</span><span id="line-371"></span><span>     </span><span id="local-6989586621680790626"><span class="annot"><span class="annottext">sorted_insts :: GenInstantiations unit
</span><a href="#local-6989586621680790626"><span class="hs-identifier hs-var hs-var">sorted_insts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((ModuleName, GenModule (GenUnit unit))
 -&gt; (ModuleName, GenModule (GenUnit unit)) -&gt; Ordering)
-&gt; GenInstantiations unit -&gt; GenInstantiations unit
forall a. (a -&gt; a -&gt; Ordering) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#sortBy"><span class="hs-identifier hs-var">sortBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModuleName -&gt; ModuleName -&gt; Ordering
</span><a href="GHC.Unit.Module.Name.html#stableModuleNameCmp"><span class="hs-identifier hs-var">stableModuleNameCmp</span></a></span><span> </span><span class="annot"><span class="annottext">(ModuleName -&gt; ModuleName -&gt; Ordering)
-&gt; ((ModuleName, GenModule (GenUnit unit)) -&gt; ModuleName)
-&gt; (ModuleName, GenModule (GenUnit unit))
-&gt; (ModuleName, GenModule (GenUnit unit))
-&gt; Ordering
forall b c a. (b -&gt; b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; a -&gt; c
</span><a href="../../base/src/Data.Function.html#on"><span class="hs-operator hs-var">`on`</span></a></span><span> </span><span class="annot"><span class="annottext">(ModuleName, GenModule (GenUnit unit)) -&gt; ModuleName
forall a b. (a, b) -&gt; a
</span><a href="../../base/src/Data.Tuple.html#fst"><span class="hs-identifier hs-var">fst</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">GenInstantiations unit
</span><a href="#local-6989586621680790627"><span class="hs-identifier hs-var">insts</span></a></span><span>
</span><span id="line-372"></span><span>
</span><span id="line-373"></span><span class="hs-comment">-- | Create a new 'InstantiatedUnit' given an explicit module substitution.</span><span>
</span><span id="line-374"></span><span class="annot"><a href="GHC.Unit.Types.html#mkInstantiatedUnit"><span class="hs-identifier hs-type">mkInstantiatedUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IndefUnitId"><span class="hs-identifier hs-type">IndefUnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Instantiations"><span class="hs-identifier hs-type">Instantiations</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span><span>
</span><span id="line-375"></span><span id="mkInstantiatedUnit"><span class="annot"><span class="annottext">mkInstantiatedUnit :: Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; InstantiatedUnit
</span><a href="GHC.Unit.Types.html#mkInstantiatedUnit"><span class="hs-identifier hs-var hs-var">mkInstantiatedUnit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UnitId -&gt; FastString)
-&gt; Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; InstantiatedUnit
forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; GenInstantiations unit
-&gt; GenInstantiatedUnit unit
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnit"><span class="hs-identifier hs-var">mkGenInstantiatedUnit</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span>
</span><span id="line-376"></span><span>
</span><span id="line-377"></span><span>
</span><span id="line-378"></span><span class="hs-comment">-- | Smart constructor for instantiated GenUnit</span><span>
</span><span id="line-379"></span><span id="local-6989586621680791384"><span class="annot"><a href="GHC.Unit.Types.html#mkGenVirtUnit"><span class="hs-identifier hs-type">mkGenVirtUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791384"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791384"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791384"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791384"><span class="hs-keyword hs-type">unit</span></a></span></span><span>
</span><span id="line-380"></span><span id="mkGenVirtUnit"><span class="annot"><span class="annottext">mkGenVirtUnit :: forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; [(ModuleName, GenModule (GenUnit unit))]
-&gt; GenUnit unit
</span><a href="GHC.Unit.Types.html#mkGenVirtUnit"><span class="hs-identifier hs-var hs-var">mkGenVirtUnit</span></a></span></span><span> </span><span id="local-6989586621680790620"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790620"><span class="hs-identifier hs-var">_gunitFS</span></a></span></span><span> </span><span id="local-6989586621680790619"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790619"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite unit -&gt; GenUnit unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="annot"><span class="annottext">(Definite unit -&gt; GenUnit unit) -&gt; Definite unit -&gt; GenUnit unit
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">unit -&gt; Definite unit
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Indefinite unit -&gt; unit
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790619"><span class="hs-identifier hs-var">uid</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- huh? indefinite unit without any instantiation/hole?</span><span>
</span><span id="line-381"></span><span class="annot"><a href="GHC.Unit.Types.html#mkGenVirtUnit"><span class="hs-identifier hs-var">mkGenVirtUnit</span></a></span><span> </span><span id="local-6989586621680790616"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790616"><span class="hs-identifier hs-var">gunitFS</span></a></span></span><span>  </span><span id="local-6989586621680790615"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790615"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span id="local-6989586621680790614"><span class="annot"><span class="annottext">[(ModuleName, GenModule (GenUnit unit))]
</span><a href="#local-6989586621680790614"><span class="hs-identifier hs-var">insts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit -&gt; GenUnit unit
forall uid. GenInstantiatedUnit uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-var">VirtUnit</span></a></span><span> </span><span class="annot"><span class="annottext">(GenInstantiatedUnit unit -&gt; GenUnit unit)
-&gt; GenInstantiatedUnit unit -&gt; GenUnit unit
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; [(ModuleName, GenModule (GenUnit unit))]
-&gt; GenInstantiatedUnit unit
forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; GenInstantiations unit
-&gt; GenInstantiatedUnit unit
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnit"><span class="hs-identifier hs-var">mkGenInstantiatedUnit</span></a></span><span> </span><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790616"><span class="hs-identifier hs-var">gunitFS</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790615"><span class="hs-identifier hs-var">uid</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, GenModule (GenUnit unit))]
</span><a href="#local-6989586621680790614"><span class="hs-identifier hs-var">insts</span></a></span><span>
</span><span id="line-382"></span><span>
</span><span id="line-383"></span><span class="hs-comment">-- | Smart constructor for VirtUnit</span><span>
</span><span id="line-384"></span><span class="annot"><a href="GHC.Unit.Types.html#mkVirtUnit"><span class="hs-identifier hs-type">mkVirtUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IndefUnitId"><span class="hs-identifier hs-type">IndefUnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Instantiations"><span class="hs-identifier hs-type">Instantiations</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span>
</span><span id="line-385"></span><span id="mkVirtUnit"><span class="annot"><span class="annottext">mkVirtUnit :: Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; Unit
</span><a href="GHC.Unit.Types.html#mkVirtUnit"><span class="hs-identifier hs-var hs-var">mkVirtUnit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UnitId -&gt; FastString)
-&gt; Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; Unit
forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; [(ModuleName, GenModule (GenUnit unit))]
-&gt; GenUnit unit
</span><a href="GHC.Unit.Types.html#mkGenVirtUnit"><span class="hs-identifier hs-var">mkGenVirtUnit</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span>
</span><span id="line-386"></span><span>
</span><span id="line-387"></span><span class="hs-comment">-- | Generate a uniquely identifying hash (internal unit-id) for an instantiated</span><span>
</span><span id="line-388"></span><span class="hs-comment">-- unit.</span><span>
</span><span id="line-389"></span><span class="hs-comment">--</span><span>
</span><span id="line-390"></span><span class="hs-comment">-- This is a one-way function. If the indefinite unit has not been instantiated at all, we return its unit-id.</span><span>
</span><span id="line-391"></span><span class="hs-comment">--</span><span>
</span><span id="line-392"></span><span class="hs-comment">-- This hash is completely internal to GHC and is not used for symbol names or</span><span>
</span><span id="line-393"></span><span class="hs-comment">-- file paths. It is different from the hash Cabal would produce for the same</span><span>
</span><span id="line-394"></span><span class="hs-comment">-- instantiated unit.</span><span>
</span><span id="line-395"></span><span id="local-6989586621680791391"><span class="annot"><a href="GHC.Unit.Types.html#mkGenInstantiatedUnitHash"><span class="hs-identifier hs-type">mkGenInstantiatedUnitHash</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791391"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791391"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791391"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span></span><span>
</span><span id="line-396"></span><span id="mkGenInstantiatedUnitHash"><span class="annot"><span class="annottext">mkGenInstantiatedUnitHash :: forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; [(ModuleName, GenModule (GenUnit unit))]
-&gt; FastString
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnitHash"><span class="hs-identifier hs-var hs-var">mkGenInstantiatedUnitHash</span></a></span></span><span> </span><span id="local-6989586621680790613"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790613"><span class="hs-identifier hs-var">gunitFS</span></a></span></span><span> </span><span id="local-6989586621680790612"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790612"><span class="hs-identifier hs-var">cid</span></a></span></span><span> </span><span id="local-6989586621680790611"><span class="annot"><span class="annottext">[(ModuleName, GenModule (GenUnit unit))]
</span><a href="#local-6989586621680790611"><span class="hs-identifier hs-var">sorted_holes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-397"></span><span>    </span><span class="annot"><span class="annottext">ByteString -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastStringByteString"><span class="hs-identifier hs-var">mkFastStringByteString</span></a></span><span>
</span><span id="line-398"></span><span>  </span><span class="annot"><span class="annottext">(ByteString -&gt; FastString)
-&gt; (Fingerprint -&gt; ByteString) -&gt; Fingerprint -&gt; FastString
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; Fingerprint -&gt; ByteString
</span><a href="GHC.Unit.Types.html#fingerprintUnitId"><span class="hs-identifier hs-var">fingerprintUnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790613"><span class="hs-identifier hs-var">gunitFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Indefinite unit -&gt; unit
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790612"><span class="hs-identifier hs-var">cid</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-399"></span><span>  </span><span class="annot"><span class="annottext">(Fingerprint -&gt; FastString) -&gt; Fingerprint -&gt; FastString
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(unit -&gt; FastString)
-&gt; [(ModuleName, GenModule (GenUnit unit))] -&gt; Fingerprint
forall unit.
(unit -&gt; FastString)
-&gt; [(ModuleName, GenModule (GenUnit unit))] -&gt; Fingerprint
</span><a href="GHC.Unit.Types.html#hashInstantiations"><span class="hs-identifier hs-var">hashInstantiations</span></a></span><span> </span><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790613"><span class="hs-identifier hs-var">gunitFS</span></a></span><span> </span><span class="annot"><span class="annottext">[(ModuleName, GenModule (GenUnit unit))]
</span><a href="#local-6989586621680790611"><span class="hs-identifier hs-var">sorted_holes</span></a></span><span>
</span><span id="line-400"></span><span>
</span><span id="line-401"></span><span class="annot"><a href="GHC.Unit.Types.html#mkInstantiatedUnitHash"><span class="hs-identifier hs-type">mkInstantiatedUnitHash</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IndefUnitId"><span class="hs-identifier hs-type">IndefUnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Instantiations"><span class="hs-identifier hs-type">Instantiations</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-402"></span><span id="mkInstantiatedUnitHash"><span class="annot"><span class="annottext">mkInstantiatedUnitHash :: Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; FastString
</span><a href="GHC.Unit.Types.html#mkInstantiatedUnitHash"><span class="hs-identifier hs-var hs-var">mkInstantiatedUnitHash</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UnitId -&gt; FastString)
-&gt; Indefinite UnitId -&gt; [(ModuleName, Module)] -&gt; FastString
forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; [(ModuleName, GenModule (GenUnit unit))]
-&gt; FastString
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnitHash"><span class="hs-identifier hs-var">mkGenInstantiatedUnitHash</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span>
</span><span id="line-403"></span><span>
</span><span id="line-404"></span><span class="hs-comment">-- | Generate a hash for a sorted module instantiation.</span><span>
</span><span id="line-405"></span><span id="local-6989586621680791378"><span class="annot"><a href="GHC.Unit.Types.html#hashInstantiations"><span class="hs-identifier hs-type">hashInstantiations</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791378"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenModule"><span class="hs-identifier hs-type">GenModule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791378"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span></span><span>
</span><span id="line-406"></span><span id="hashInstantiations"><span class="annot"><span class="annottext">hashInstantiations :: forall unit.
(unit -&gt; FastString)
-&gt; [(ModuleName, GenModule (GenUnit unit))] -&gt; Fingerprint
</span><a href="GHC.Unit.Types.html#hashInstantiations"><span class="hs-identifier hs-var hs-var">hashInstantiations</span></a></span></span><span> </span><span id="local-6989586621680790604"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790604"><span class="hs-identifier hs-var">gunitFS</span></a></span></span><span> </span><span id="local-6989586621680790603"><span class="annot"><span class="annottext">[(ModuleName, GenModule (GenUnit unit))]
</span><a href="#local-6989586621680790603"><span class="hs-identifier hs-var">sorted_holes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-407"></span><span>    </span><span class="annot"><span class="annottext">ByteString -&gt; Fingerprint
</span><a href="GHC.Utils.Fingerprint.html#fingerprintByteString"><span class="hs-identifier hs-var">fingerprintByteString</span></a></span><span>
</span><span id="line-408"></span><span>  </span><span class="annot"><span class="annottext">(ByteString -&gt; Fingerprint)
-&gt; ([ByteString] -&gt; ByteString) -&gt; [ByteString] -&gt; Fingerprint
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">[ByteString] -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.html#concat"><span class="hs-identifier hs-var">BS.concat</span></a></span><span> </span><span class="annot"><span class="annottext">([ByteString] -&gt; Fingerprint) -&gt; [ByteString] -&gt; Fingerprint
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-409"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621680790600"><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790600"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790599"><span class="annot"><span class="annottext">GenModule (GenUnit unit)
</span><a href="#local-6989586621680790599"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[(ModuleName, GenModule (GenUnit unit))]
</span><a href="#local-6989586621680790603"><span class="hs-identifier hs-var">sorted_holes</span></a></span><span>
</span><span id="line-410"></span><span>        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModuleName -&gt; FastString
</span><a href="GHC.Unit.Module.Name.html#moduleNameFS"><span class="hs-identifier hs-var">moduleNameFS</span></a></span><span> </span><span class="annot"><span class="annottext">ModuleName
</span><a href="#local-6989586621680790600"><span class="hs-identifier hs-var">m</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>                   </span><span class="annot"><span class="annottext">Char -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.Char8.html#singleton"><span class="hs-identifier hs-var">BS.Char8.singleton</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">' '</span></span><span class="hs-special">,</span><span>
</span><span id="line-411"></span><span>          </span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(unit -&gt; FastString) -&gt; GenUnit unit -&gt; FastString
forall unit. (unit -&gt; FastString) -&gt; GenUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#genUnitFS"><span class="hs-identifier hs-var">genUnitFS</span></a></span><span> </span><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790604"><span class="hs-identifier hs-var">gunitFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenModule (GenUnit unit) -&gt; GenUnit unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">GenModule (GenUnit unit)
</span><a href="#local-6989586621680790599"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.Char8.html#singleton"><span class="hs-identifier hs-var">BS.Char8.singleton</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span class="hs-special">,</span><span>
</span><span id="line-412"></span><span>          </span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ModuleName -&gt; FastString
</span><a href="GHC.Unit.Module.Name.html#moduleNameFS"><span class="hs-identifier hs-var">moduleNameFS</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenModule (GenUnit unit) -&gt; ModuleName
forall unit. GenModule unit -&gt; ModuleName
</span><a href="GHC.Unit.Types.html#moduleName"><span class="hs-identifier hs-var hs-var">moduleName</span></a></span><span> </span><span class="annot"><span class="annottext">GenModule (GenUnit unit)
</span><a href="#local-6989586621680790599"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>      </span><span class="annot"><span class="annottext">Char -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.Char8.html#singleton"><span class="hs-identifier hs-var">BS.Char8.singleton</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span class="hs-special">]</span><span>
</span><span id="line-413"></span><span>
</span><span id="line-414"></span><span class="annot"><a href="GHC.Unit.Types.html#fingerprintUnitId"><span class="hs-identifier hs-type">fingerprintUnitId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.Internal.html#ByteString"><span class="hs-identifier hs-type">BS.ByteString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.Internal.html#ByteString"><span class="hs-identifier hs-type">BS.ByteString</span></a></span><span>
</span><span id="line-415"></span><span id="fingerprintUnitId"><span class="annot"><span class="annottext">fingerprintUnitId :: ByteString -&gt; Fingerprint -&gt; ByteString
</span><a href="GHC.Unit.Types.html#fingerprintUnitId"><span class="hs-identifier hs-var hs-var">fingerprintUnitId</span></a></span></span><span> </span><span id="local-6989586621680790596"><span class="annot"><span class="annottext">ByteString
</span><a href="#local-6989586621680790596"><span class="hs-identifier hs-var">prefix</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Fingerprint.Type.html#Fingerprint"><span class="hs-identifier hs-type">Fingerprint</span></a></span><span> </span><span id="local-6989586621680790595"><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680790595"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680790594"><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680790594"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-416"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[ByteString] -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.html#concat"><span class="hs-identifier hs-var">BS.concat</span></a></span><span>
</span><span id="line-417"></span><span>    </span><span class="annot"><span class="annottext">([ByteString] -&gt; ByteString) -&gt; [ByteString] -&gt; ByteString
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">ByteString
</span><a href="#local-6989586621680790596"><span class="hs-identifier hs-var">prefix</span></a></span><span>
</span><span id="line-418"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.Char8.html#singleton"><span class="hs-identifier hs-var">BS.Char8.singleton</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-419"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.Char8.html#pack"><span class="hs-identifier hs-var">BS.Char8.pack</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word64 -&gt; String
</span><a href="GHC.Utils.Encoding.html#toBase62Padded"><span class="hs-identifier hs-var">toBase62Padded</span></a></span><span> </span><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680790595"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-420"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; ByteString
</span><a href="../../bytestring/src/Data.ByteString.Char8.html#pack"><span class="hs-identifier hs-var">BS.Char8.pack</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word64 -&gt; String
</span><a href="GHC.Utils.Encoding.html#toBase62Padded"><span class="hs-identifier hs-var">toBase62Padded</span></a></span><span> </span><span class="annot"><span class="annottext">Word64
</span><a href="#local-6989586621680790594"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-421"></span><span>
</span><span id="line-422"></span><span class="annot"><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-type">unitUnique</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span>
</span><span id="line-423"></span><span id="unitUnique"><span class="annot"><span class="annottext">unitUnique :: Unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-var hs-var">unitUnique</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790591"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790591"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; Unique
forall unit. GenInstantiatedUnit unit -&gt; Unique
</span><a href="GHC.Unit.Types.html#instUnitKey"><span class="hs-identifier hs-var hs-var">instUnitKey</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790591"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-424"></span><span class="annot"><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-var">unitUnique</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span id="local-6989586621680790590"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790590"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790590"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-425"></span><span class="annot"><a href="GHC.Unit.Types.html#unitUnique"><span class="hs-identifier hs-var">unitUnique</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="GHC.Unit.Types.html#holeUnique"><span class="hs-identifier hs-var">holeUnique</span></a></span><span>
</span><span id="line-426"></span><span>
</span><span id="line-427"></span><span class="annot"><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-type">unitFS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-428"></span><span id="unitFS"><span class="annot"><span class="annottext">unitFS :: Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var hs-var">unitFS</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UnitId -&gt; FastString) -&gt; Unit -&gt; FastString
forall unit. (unit -&gt; FastString) -&gt; GenUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#genUnitFS"><span class="hs-identifier hs-var">genUnitFS</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span>
</span><span id="line-429"></span><span>
</span><span id="line-430"></span><span id="local-6989586621680791376"><span class="annot"><a href="GHC.Unit.Types.html#genUnitFS"><span class="hs-identifier hs-type">genUnitFS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791376"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791376"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span></span><span>
</span><span id="line-431"></span><span id="genUnitFS"><span class="annot"><span class="annottext">genUnitFS :: forall unit. (unit -&gt; FastString) -&gt; GenUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#genUnitFS"><span class="hs-identifier hs-var hs-var">genUnitFS</span></a></span></span><span> </span><span id="local-6989586621680790589"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790589"><span class="hs-identifier hs-var">_gunitFS</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790588"><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790588"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit -&gt; FastString
forall unit. GenInstantiatedUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var hs-var">instUnitFS</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit unit
</span><a href="#local-6989586621680790588"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-432"></span><span class="annot"><a href="GHC.Unit.Types.html#genUnitFS"><span class="hs-identifier hs-var">genUnitFS</span></a></span><span> </span><span id="local-6989586621680790587"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790587"><span class="hs-identifier hs-var">gunitFS</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span id="local-6989586621680790586"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790586"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790587"><span class="hs-identifier hs-var">gunitFS</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790586"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-433"></span><span class="annot"><a href="GHC.Unit.Types.html#genUnitFS"><span class="hs-identifier hs-var">genUnitFS</span></a></span><span> </span><span id="local-6989586621680790585"><span class="annot"><span class="annottext">unit -&gt; FastString
</span><a href="#local-6989586621680790585"><span class="hs-identifier hs-var">_gunitFS</span></a></span></span><span> </span><span class="annot"><span class="annottext">GenUnit unit
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="GHC.Unit.Types.html#holeFS"><span class="hs-identifier hs-var">holeFS</span></a></span><span>
</span><span id="line-434"></span><span>
</span><span id="line-435"></span><span class="hs-comment">-- | Create a new simple unit identifier from a 'FastString'.  Internally,</span><span>
</span><span id="line-436"></span><span class="hs-comment">-- this is primarily used to specify wired-in unit identifiers.</span><span>
</span><span id="line-437"></span><span class="annot"><a href="GHC.Unit.Types.html#fsToUnit"><span class="hs-identifier hs-type">fsToUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span>
</span><span id="line-438"></span><span id="fsToUnit"><span class="annot"><span class="annottext">fsToUnit :: FastString -&gt; Unit
</span><a href="GHC.Unit.Types.html#fsToUnit"><span class="hs-identifier hs-var hs-var">fsToUnit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="annot"><span class="annottext">(Definite UnitId -&gt; Unit)
-&gt; (FastString -&gt; Definite UnitId) -&gt; FastString -&gt; Unit
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">(UnitId -&gt; Definite UnitId)
-&gt; (FastString -&gt; UnitId) -&gt; FastString -&gt; Definite UnitId
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span>
</span><span id="line-439"></span><span>
</span><span id="line-440"></span><span class="annot"><a href="GHC.Unit.Types.html#unitString"><span class="hs-identifier hs-type">unitString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-441"></span><span id="unitString"><span class="annot"><span class="annottext">unitString :: Unit -&gt; String
</span><a href="GHC.Unit.Types.html#unitString"><span class="hs-identifier hs-var hs-var">unitString</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; String) -&gt; (Unit -&gt; FastString) -&gt; Unit -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitFS"><span class="hs-identifier hs-var">unitFS</span></a></span><span>
</span><span id="line-442"></span><span>
</span><span id="line-443"></span><span class="annot"><a href="GHC.Unit.Types.html#stringToUnit"><span class="hs-identifier hs-type">stringToUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span>
</span><span id="line-444"></span><span id="stringToUnit"><span class="annot"><span class="annottext">stringToUnit :: String -&gt; Unit
</span><a href="GHC.Unit.Types.html#stringToUnit"><span class="hs-identifier hs-var hs-var">stringToUnit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Unit
</span><a href="GHC.Unit.Types.html#fsToUnit"><span class="hs-identifier hs-var">fsToUnit</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; Unit) -&gt; (String -&gt; FastString) -&gt; String -&gt; Unit
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastString"><span class="hs-identifier hs-var">mkFastString</span></a></span><span>
</span><span id="line-445"></span><span>
</span><span id="line-446"></span><span class="hs-comment">-- | Map over the unit type of a 'GenUnit'</span><span>
</span><span id="line-447"></span><span id="local-6989586621680791373"><span id="local-6989586621680791374"><span class="annot"><a href="GHC.Unit.Types.html#mapGenUnit"><span class="hs-identifier hs-type">mapGenUnit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791374"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680791373"><span class="hs-identifier hs-type">v</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680791373"><span class="hs-identifier hs-type">v</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791374"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenUnit"><span class="hs-identifier hs-type">GenUnit</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791373"><span class="hs-identifier hs-type">v</span></a></span></span></span><span>
</span><span id="line-448"></span><span id="mapGenUnit"><span class="annot"><span class="annottext">mapGenUnit :: forall u v. (u -&gt; v) -&gt; (v -&gt; FastString) -&gt; GenUnit u -&gt; GenUnit v
</span><a href="GHC.Unit.Types.html#mapGenUnit"><span class="hs-identifier hs-var hs-var">mapGenUnit</span></a></span></span><span> </span><span id="local-6989586621680790581"><span class="annot"><span class="annottext">u -&gt; v
</span><a href="#local-6989586621680790581"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680790580"><span class="annot"><span class="annottext">v -&gt; FastString
</span><a href="#local-6989586621680790580"><span class="hs-identifier hs-var">gunitFS</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenUnit u -&gt; GenUnit v
</span><a href="#local-6989586621680790579"><span class="hs-identifier hs-var">go</span></a></span><span>
</span><span id="line-449"></span><span>   </span><span class="hs-keyword">where</span><span>
</span><span id="line-450"></span><span>      </span><span id="local-6989586621680790579"><span class="annot"><span class="annottext">go :: GenUnit u -&gt; GenUnit v
</span><a href="#local-6989586621680790579"><span class="hs-identifier hs-var hs-var">go</span></a></span></span><span> </span><span id="local-6989586621680790569"><span class="annot"><span class="annottext">GenUnit u
</span><a href="#local-6989586621680790569"><span class="hs-identifier hs-var">gu</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">GenUnit u
</span><a href="#local-6989586621680790569"><span class="hs-identifier hs-var">gu</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-451"></span><span>               </span><span class="annot"><span class="annottext">GenUnit u
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">GenUnit v
forall uid. GenUnit uid
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>
</span><span id="line-452"></span><span>               </span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span id="local-6989586621680790568"><span class="annot"><span class="annottext">Definite u
</span><a href="#local-6989586621680790568"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Definite v -&gt; GenUnit v
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(u -&gt; v) -&gt; Definite u -&gt; Definite v
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">u -&gt; v
</span><a href="#local-6989586621680790581"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Definite u
</span><a href="#local-6989586621680790568"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-453"></span><span>               </span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790567"><span class="annot"><span class="annottext">GenInstantiatedUnit u
</span><a href="#local-6989586621680790567"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-454"></span><span>                  </span><span class="annot"><span class="annottext">GenInstantiatedUnit v -&gt; GenUnit v
forall uid. GenInstantiatedUnit uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-var">VirtUnit</span></a></span><span> </span><span class="annot"><span class="annottext">(GenInstantiatedUnit v -&gt; GenUnit v)
-&gt; GenInstantiatedUnit v -&gt; GenUnit v
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(v -&gt; FastString)
-&gt; Indefinite v -&gt; GenInstantiations v -&gt; GenInstantiatedUnit v
forall unit.
(unit -&gt; FastString)
-&gt; Indefinite unit
-&gt; GenInstantiations unit
-&gt; GenInstantiatedUnit unit
</span><a href="GHC.Unit.Types.html#mkGenInstantiatedUnit"><span class="hs-identifier hs-var">mkGenInstantiatedUnit</span></a></span><span> </span><span class="annot"><span class="annottext">v -&gt; FastString
</span><a href="#local-6989586621680790580"><span class="hs-identifier hs-var">gunitFS</span></a></span><span>
</span><span id="line-455"></span><span>                     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(u -&gt; v) -&gt; Indefinite u -&gt; Indefinite v
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">u -&gt; v
</span><a href="#local-6989586621680790581"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenInstantiatedUnit u -&gt; Indefinite u
forall unit. GenInstantiatedUnit unit -&gt; Indefinite unit
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var hs-var">instUnitInstanceOf</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit u
</span><a href="#local-6989586621680790567"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-456"></span><span>                     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((ModuleName, GenModule (GenUnit u))
 -&gt; (ModuleName, GenModule (GenUnit v)))
-&gt; [(ModuleName, GenModule (GenUnit u))] -&gt; GenInstantiations v
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GenModule (GenUnit u) -&gt; GenModule (GenUnit v))
-&gt; (ModuleName, GenModule (GenUnit u))
-&gt; (ModuleName, GenModule (GenUnit v))
forall (p :: * -&gt; * -&gt; *) b c a.
Bifunctor p =&gt;
(b -&gt; c) -&gt; p a b -&gt; p a c
</span><a href="../../base/src/Data.Bifunctor.html#second"><span class="hs-identifier hs-var">second</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GenUnit u -&gt; GenUnit v)
-&gt; GenModule (GenUnit u) -&gt; GenModule (GenUnit v)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">GenUnit u -&gt; GenUnit v
</span><a href="#local-6989586621680790579"><span class="hs-identifier hs-var">go</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GenInstantiatedUnit u -&gt; [(ModuleName, GenModule (GenUnit u))]
forall unit. GenInstantiatedUnit unit -&gt; GenInstantiations unit
</span><a href="GHC.Unit.Types.html#instUnitInsts"><span class="hs-identifier hs-var hs-var">instUnitInsts</span></a></span><span> </span><span class="annot"><span class="annottext">GenInstantiatedUnit u
</span><a href="#local-6989586621680790567"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-457"></span><span>
</span><span id="line-458"></span><span>
</span><span id="line-459"></span><span class="hs-comment">-- | Return the UnitId of the Unit. For on-the-fly instantiated units, return</span><span>
</span><span id="line-460"></span><span class="hs-comment">-- the UnitId of the indefinite unit this unit is an instance of.</span><span>
</span><span id="line-461"></span><span class="annot"><a href="GHC.Unit.Types.html#toUnitId"><span class="hs-identifier hs-type">toUnitId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-462"></span><span id="toUnitId"><span class="annot"><span class="annottext">toUnitId :: Unit -&gt; UnitId
</span><a href="GHC.Unit.Types.html#toUnitId"><span class="hs-identifier hs-var hs-var">toUnitId</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-type">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span id="local-6989586621680790565"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790565"><span class="hs-identifier hs-var">iuid</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790565"><span class="hs-identifier hs-var">iuid</span></a></span><span>
</span><span id="line-463"></span><span class="annot"><a href="GHC.Unit.Types.html#toUnitId"><span class="hs-identifier hs-var">toUnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#VirtUnit"><span class="hs-identifier hs-type">VirtUnit</span></a></span><span> </span><span id="local-6989586621680790564"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790564"><span class="hs-identifier hs-var">indef</span></a></span></span><span class="hs-special">)</span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Indefinite UnitId -&gt; UnitId
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; Indefinite UnitId
forall unit. GenInstantiatedUnit unit -&gt; Indefinite unit
</span><a href="GHC.Unit.Types.html#instUnitInstanceOf"><span class="hs-identifier hs-var hs-var">instUnitInstanceOf</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790564"><span class="hs-identifier hs-var">indef</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-464"></span><span class="annot"><a href="GHC.Unit.Types.html#toUnitId"><span class="hs-identifier hs-var">toUnitId</span></a></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#HoleUnit"><span class="hs-identifier hs-var">HoleUnit</span></a></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; UnitId
forall a. HasCallStack =&gt; String -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Hole unit&quot;</span></span><span>
</span><span id="line-465"></span><span>
</span><span id="line-466"></span><span class="hs-comment">-- | Return the virtual UnitId of an on-the-fly instantiated unit.</span><span>
</span><span id="line-467"></span><span class="annot"><a href="GHC.Unit.Types.html#virtualUnitId"><span class="hs-identifier hs-type">virtualUnitId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#InstantiatedUnit"><span class="hs-identifier hs-type">InstantiatedUnit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-468"></span><span id="virtualUnitId"><span class="annot"><span class="annottext">virtualUnitId :: InstantiatedUnit -&gt; UnitId
</span><a href="GHC.Unit.Types.html#virtualUnitId"><span class="hs-identifier hs-var hs-var">virtualUnitId</span></a></span></span><span> </span><span id="local-6989586621680790563"><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790563"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InstantiatedUnit -&gt; FastString
forall unit. GenInstantiatedUnit unit -&gt; FastString
</span><a href="GHC.Unit.Types.html#instUnitFS"><span class="hs-identifier hs-var hs-var">instUnitFS</span></a></span><span> </span><span class="annot"><span class="annottext">InstantiatedUnit
</span><a href="#local-6989586621680790563"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-469"></span><span>
</span><span id="line-470"></span><span class="hs-comment">-- | A 'Unit' is definite if it has no free holes.</span><span>
</span><span id="line-471"></span><span class="annot"><a href="GHC.Unit.Types.html#unitIsDefinite"><span class="hs-identifier hs-type">unitIsDefinite</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-472"></span><span id="unitIsDefinite"><span class="annot"><span class="annottext">unitIsDefinite :: Unit -&gt; Bool
</span><a href="GHC.Unit.Types.html#unitIsDefinite"><span class="hs-identifier hs-var hs-var">unitIsDefinite</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDSet ModuleName -&gt; Bool
forall a. UniqDSet a -&gt; Bool
</span><a href="GHC.Types.Unique.DSet.html#isEmptyUniqDSet"><span class="hs-identifier hs-var">isEmptyUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDSet ModuleName -&gt; Bool)
-&gt; (Unit -&gt; UniqDSet ModuleName) -&gt; Unit -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; UniqDSet ModuleName
forall u. GenUnit u -&gt; UniqDSet ModuleName
</span><a href="GHC.Unit.Types.html#unitFreeModuleHoles"><span class="hs-identifier hs-var">unitFreeModuleHoles</span></a></span><span>
</span><span id="line-473"></span><span>
</span><span id="line-474"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-475"></span><span class="hs-comment">-- UNIT IDs</span><span>
</span><span id="line-476"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-477"></span><span>
</span><span id="line-478"></span><span class="hs-comment">-- | A UnitId identifies a built library in a database and is used to generate</span><span>
</span><span id="line-479"></span><span class="hs-comment">-- unique symbols, etc. It's usually of the form:</span><span>
</span><span id="line-480"></span><span class="hs-comment">--</span><span>
</span><span id="line-481"></span><span class="hs-comment">--    pkgname-1.2:libname+hash</span><span>
</span><span id="line-482"></span><span class="hs-comment">--</span><span>
</span><span id="line-483"></span><span class="hs-comment">-- These UnitId are provided to us via the @-this-unit-id@ flag.</span><span>
</span><span id="line-484"></span><span class="hs-comment">--</span><span>
</span><span id="line-485"></span><span class="hs-comment">-- The library in question may be definite or indefinite; if it is indefinite,</span><span>
</span><span id="line-486"></span><span class="hs-comment">-- none of the holes have been filled (we never install partially instantiated</span><span>
</span><span id="line-487"></span><span class="hs-comment">-- libraries as we can cheaply instantiate them on-the-fly, cf VirtUnit).  Put</span><span>
</span><span id="line-488"></span><span class="hs-comment">-- another way, an installed unit id is either fully instantiated, or not</span><span>
</span><span id="line-489"></span><span class="hs-comment">-- instantiated at all.</span><span>
</span><span id="line-490"></span><span class="hs-keyword">newtype</span><span> </span><span id="UnitId"><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-491"></span><span>    </span><span id="UnitId"><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-492"></span><span>      </span><span class="hs-comment">-- | The full hashed unit identifier, including the component id</span><span>
</span><span id="line-493"></span><span>      </span><span class="hs-comment">-- and the hash.</span><span>
</span><span id="line-494"></span><span>      </span><span id="unitIdFS"><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-495"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-496"></span><span>
</span><span id="line-497"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790559"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-498"></span><span>  </span><span id="local-6989586621680790555"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; UnitId -&gt; IO ()
</span><a href="#local-6989586621680790555"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790554"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790554"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span id="local-6989586621680790553"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790553"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; FastString -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790554"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790553"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-499"></span><span>  </span><span id="local-6989586621680790549"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO UnitId
</span><a href="#local-6989586621680790549"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790548"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790548"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621680790547"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790547"><span class="hs-identifier hs-var">fs</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO FastString
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790548"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; IO UnitId
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790547"><span class="hs-identifier hs-var">fs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-500"></span><span>
</span><span id="line-501"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790544"><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-502"></span><span>    </span><span id="local-6989586621680790540"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790540"><span class="hs-identifier hs-var">uid1</span></a></span></span><span> </span><span id="local-6989586621680790539"><span class="annot"><span class="annottext">== :: UnitId -&gt; UnitId -&gt; Bool
</span><span class="hs-operator hs-var hs-var hs-var hs-var">==</span></span></span><span> </span><span id="local-6989586621680790538"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790538"><span class="hs-identifier hs-var">uid2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790540"><span class="hs-identifier hs-var">uid1</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; Unique -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790538"><span class="hs-identifier hs-var">uid2</span></a></span><span>
</span><span id="line-503"></span><span>
</span><span id="line-504"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790523"><span id="local-6989586621680790525"><span id="local-6989586621680790527"><span id="local-6989586621680790529"><span id="local-6989586621680790531"><span id="local-6989586621680790533"><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-505"></span><span>    </span><span id="local-6989586621680790521"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790521"><span class="hs-identifier hs-var">u1</span></a></span></span><span> </span><span id="local-6989586621680790520"><span class="annot"><span class="annottext">compare :: UnitId -&gt; UnitId -&gt; Ordering
</span><a href="#local-6989586621680790520"><span class="hs-operator hs-var hs-var hs-var hs-var">`compare`</span></a></span></span><span> </span><span id="local-6989586621680790519"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790519"><span class="hs-identifier hs-var">u2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790521"><span class="hs-identifier hs-var">u1</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790519"><span class="hs-identifier hs-var">u2</span></a></span><span>
</span><span id="line-506"></span><span>
</span><span id="line-507"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-508"></span><span>    </span><span id="local-6989586621680790516"><span class="annot"><span class="annottext">getUnique :: UnitId -&gt; Unique
</span><a href="#local-6989586621680790516"><span class="hs-identifier hs-var hs-var hs-var hs-var">getUnique</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; Unique)
-&gt; (UnitId -&gt; FastString) -&gt; UnitId -&gt; Unique
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span>
</span><span id="line-509"></span><span>
</span><span id="line-510"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790513"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-511"></span><span>    </span><span id="local-6989586621680790512"><span class="annot"><span class="annottext">ppr :: UnitId -&gt; SDoc
</span><a href="#local-6989586621680790512"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680790511"><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790511"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(DynFlags -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-var">sdocWithDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">((DynFlags -&gt; SDoc) -&gt; SDoc) -&gt; (DynFlags -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680790509"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680790509"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">UnitState -&gt; UnitId -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprUnitId"><span class="hs-identifier hs-var">pprUnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; UnitState
</span><a href="GHC.Driver.Session.html#unitState"><span class="hs-identifier hs-var">unitState</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621680790509"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790511"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-512"></span><span>
</span><span id="line-513"></span><span class="hs-comment">-- | Pretty-print a UnitId</span><span>
</span><span id="line-514"></span><span class="hs-comment">--</span><span>
</span><span id="line-515"></span><span class="hs-comment">-- In non-debug mode, query the given database to try to print</span><span>
</span><span id="line-516"></span><span class="hs-comment">-- &quot;package-version:component&quot; instead of the raw UnitId</span><span>
</span><span id="line-517"></span><span class="annot"><a href="GHC.Unit.Types.html#pprUnitId"><span class="hs-identifier hs-type">pprUnitId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.State.html#UnitState"><span class="hs-identifier hs-type">UnitState</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-518"></span><span id="pprUnitId"><span class="annot"><span class="annottext">pprUnitId :: UnitState -&gt; UnitId -&gt; SDoc
</span><a href="GHC.Unit.Types.html#pprUnitId"><span class="hs-identifier hs-var hs-var">pprUnitId</span></a></span></span><span> </span><span id="local-6989586621680790507"><span class="annot"><span class="annottext">UnitState
</span><a href="#local-6989586621680790507"><span class="hs-identifier hs-var">state</span></a></span></span><span> </span><span id="local-6989586621680790506"><span class="annot"><span class="annottext">uid :: UnitId
</span><a href="#local-6989586621680790506"><span class="hs-identifier hs-var">uid</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span id="local-6989586621680790505"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790505"><span class="hs-identifier hs-var">fs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier hs-var">getPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680790503"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680790503"><span class="hs-identifier hs-var">debug</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-519"></span><span>   </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680790503"><span class="hs-identifier hs-var">debug</span></a></span><span>
</span><span id="line-520"></span><span>      </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790505"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-521"></span><span>      </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">UnitState -&gt; UnitId -&gt; Maybe String
</span><a href="GHC.Unit.State.html#displayUnitId"><span class="hs-identifier hs-var">displayUnitId</span></a></span><span> </span><span class="annot"><span class="annottext">UnitState
</span><a href="#local-6989586621680790507"><span class="hs-identifier hs-var">state</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="#local-6989586621680790506"><span class="hs-identifier hs-var">uid</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-522"></span><span>            </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680790502"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680790502"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680790502"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-523"></span><span>            </span><span class="annot"><span class="annottext">Maybe String
</span><span class="hs-identifier">_</span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680790505"><span class="hs-identifier hs-var">fs</span></a></span><span>
</span><span id="line-524"></span><span>
</span><span id="line-525"></span><span class="hs-comment">-- | A 'DefUnitId' is an 'UnitId' with the invariant that</span><span>
</span><span id="line-526"></span><span class="hs-comment">-- it only refers to a definite library; i.e., one we have generated</span><span>
</span><span id="line-527"></span><span class="hs-comment">-- code for.</span><span>
</span><span id="line-528"></span><span class="hs-keyword">type</span><span> </span><span id="DefUnitId"><span class="annot"><a href="GHC.Unit.Types.html#DefUnitId"><span class="hs-identifier hs-var">DefUnitId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-529"></span><span>
</span><span id="line-530"></span><span class="annot"><a href="GHC.Unit.Types.html#unitIdString"><span class="hs-identifier hs-type">unitIdString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-531"></span><span id="unitIdString"><span class="annot"><span class="annottext">unitIdString :: UnitId -&gt; String
</span><a href="GHC.Unit.Types.html#unitIdString"><span class="hs-identifier hs-var hs-var">unitIdString</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; String)
-&gt; (UnitId -&gt; FastString) -&gt; UnitId -&gt; String
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId -&gt; FastString
</span><a href="GHC.Unit.Types.html#unitIdFS"><span class="hs-identifier hs-var hs-var">unitIdFS</span></a></span><span>
</span><span id="line-532"></span><span>
</span><span id="line-533"></span><span class="annot"><a href="GHC.Unit.Types.html#stringToUnitId"><span class="hs-identifier hs-type">stringToUnitId</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-534"></span><span id="stringToUnitId"><span class="annot"><span class="annottext">stringToUnitId :: String -&gt; UnitId
</span><a href="GHC.Unit.Types.html#stringToUnitId"><span class="hs-identifier hs-var hs-var">stringToUnitId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; UnitId)
-&gt; (String -&gt; FastString) -&gt; String -&gt; UnitId
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastString"><span class="hs-identifier hs-var">mkFastString</span></a></span><span>
</span><span id="line-535"></span><span>
</span><span id="line-536"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-537"></span><span class="hs-comment">-- UTILS</span><span>
</span><span id="line-538"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-539"></span><span>
</span><span id="line-540"></span><span class="hs-comment">-- | A definite unit (i.e. without any free module hole)</span><span>
</span><span id="line-541"></span><span class="hs-keyword">newtype</span><span> </span><span id="Definite"><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span></span><span> </span><span id="local-6989586621680791382"><span class="annot"><a href="#local-6989586621680791382"><span class="hs-keyword hs-type">unit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Definite"><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="unDefinite"><span class="annot"><span class="annottext">forall unit. Definite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#unDefinite"><span class="hs-identifier hs-var hs-var">unDefinite</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680791382"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-542"></span><span>    </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680790494"><span id="local-6989586621680790498"><span class="annot"><span class="annottext">Definite unit -&gt; Definite unit -&gt; Bool
(Definite unit -&gt; Definite unit -&gt; Bool)
-&gt; (Definite unit -&gt; Definite unit -&gt; Bool) -&gt; Eq (Definite unit)
forall unit. Eq unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: Definite unit -&gt; Definite unit -&gt; Bool
$c/= :: forall unit. Eq unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
== :: Definite unit -&gt; Definite unit -&gt; Bool
$c== :: forall unit. Eq unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790461"><span id="local-6989586621680790465"><span id="local-6989586621680790469"><span id="local-6989586621680790473"><span id="local-6989586621680790477"><span id="local-6989586621680790481"><span id="local-6989586621680790485"><span class="annot"><span class="annottext">Eq (Definite unit)
Eq (Definite unit)
-&gt; (Definite unit -&gt; Definite unit -&gt; Ordering)
-&gt; (Definite unit -&gt; Definite unit -&gt; Bool)
-&gt; (Definite unit -&gt; Definite unit -&gt; Bool)
-&gt; (Definite unit -&gt; Definite unit -&gt; Bool)
-&gt; (Definite unit -&gt; Definite unit -&gt; Bool)
-&gt; (Definite unit -&gt; Definite unit -&gt; Definite unit)
-&gt; (Definite unit -&gt; Definite unit -&gt; Definite unit)
-&gt; Ord (Definite unit)
Definite unit -&gt; Definite unit -&gt; Bool
Definite unit -&gt; Definite unit -&gt; Ordering
Definite unit -&gt; Definite unit -&gt; Definite unit
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
forall {unit}. Ord unit =&gt; Eq (Definite unit)
forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Ordering
forall unit.
Ord unit =&gt;
Definite unit -&gt; Definite unit -&gt; Definite unit
min :: Definite unit -&gt; Definite unit -&gt; Definite unit
$cmin :: forall unit.
Ord unit =&gt;
Definite unit -&gt; Definite unit -&gt; Definite unit
max :: Definite unit -&gt; Definite unit -&gt; Definite unit
$cmax :: forall unit.
Ord unit =&gt;
Definite unit -&gt; Definite unit -&gt; Definite unit
&gt;= :: Definite unit -&gt; Definite unit -&gt; Bool
$c&gt;= :: forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
&gt; :: Definite unit -&gt; Definite unit -&gt; Bool
$c&gt; :: forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
&lt;= :: Definite unit -&gt; Definite unit -&gt; Bool
$c&lt;= :: forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
&lt; :: Definite unit -&gt; Definite unit -&gt; Bool
$c&lt; :: forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Bool
compare :: Definite unit -&gt; Definite unit -&gt; Ordering
$ccompare :: forall unit. Ord unit =&gt; Definite unit -&gt; Definite unit -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790454"><span id="local-6989586621680790456"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; Definite a -&gt; Definite b)
-&gt; (forall a b. a -&gt; Definite b -&gt; Definite a) -&gt; Functor Definite
forall a b. a -&gt; Definite b -&gt; Definite a
forall a b. (a -&gt; b) -&gt; Definite a -&gt; Definite b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; Definite b -&gt; Definite a
$c&lt;$ :: forall a b. a -&gt; Definite b -&gt; Definite a
fmap :: forall a b. (a -&gt; b) -&gt; Definite a -&gt; Definite b
$cfmap :: forall a b. (a -&gt; b) -&gt; Definite a -&gt; Definite b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-543"></span><span>
</span><span id="line-544"></span><span id="local-6989586621680791506"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790451"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791506"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791506"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-545"></span><span>    </span><span id="local-6989586621680790449"><span class="annot"><span class="annottext">ppr :: Definite unit -&gt; SDoc
</span><a href="#local-6989586621680790449"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span id="local-6989586621680790448"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790448"><span class="hs-identifier hs-var">uid</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">unit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790448"><span class="hs-identifier hs-var">uid</span></a></span></span><span>
</span><span id="line-546"></span><span>
</span><span id="line-547"></span><span id="local-6989586621680791404"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790445"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791404"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791404"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-548"></span><span>    </span><span id="local-6989586621680790442"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; Definite unit -&gt; IO ()
</span><a href="#local-6989586621680790442"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790441"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790441"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-type">Definite</span></a></span><span> </span><span id="local-6989586621680790440"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790440"><span class="hs-identifier hs-var">uid</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; unit -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790441"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790440"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-549"></span><span>    </span><span id="local-6989586621680790436"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO (Definite unit)
</span><a href="#local-6989586621680790436"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790435"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790435"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span> </span><span id="local-6989586621680790434"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790434"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO unit
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790435"><span class="hs-identifier hs-var">bh</span></a></span><span class="hs-special">;</span><span> </span><span class="annot"><span class="annottext">Definite unit -&gt; IO (Definite unit)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">unit -&gt; Definite unit
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790434"><span class="hs-identifier hs-var">uid</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-550"></span><span>
</span><span id="line-551"></span><span>
</span><span id="line-552"></span><span class="hs-comment">-- | An 'IndefUnitId' is an 'UnitId' with the invariant that it only</span><span>
</span><span id="line-553"></span><span class="hs-comment">-- refers to an indefinite library; i.e., one that can be instantiated.</span><span>
</span><span id="line-554"></span><span class="hs-keyword">type</span><span> </span><span id="IndefUnitId"><span class="annot"><a href="GHC.Unit.Types.html#IndefUnitId"><span class="hs-identifier hs-var">IndefUnitId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-555"></span><span>
</span><span id="line-556"></span><span class="hs-keyword">data</span><span> </span><span id="Indefinite"><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-var">Indefinite</span></a></span></span><span> </span><span id="local-6989586621680791399"><span class="annot"><a href="#local-6989586621680791399"><span class="hs-keyword hs-type">unit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Indefinite"><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-var">Indefinite</span></a></span></span><span>
</span><span id="line-557"></span><span>   </span><span class="hs-special">{</span><span> </span><span id="indefUnit"><span class="annot"><span class="annottext">forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621680791399"><span class="hs-keyword hs-type">unit</span></a></span><span>             </span><span class="hs-comment">-- ^ Unit identifier</span><span>
</span><span id="line-558"></span><span>   </span><span class="hs-special">,</span><span> </span><span id="indefUnitPprInfo"><span class="annot"><span class="annottext">forall unit. Indefinite unit -&gt; Maybe UnitPprInfo
</span><a href="GHC.Unit.Types.html#indefUnitPprInfo"><span class="hs-identifier hs-var hs-var">indefUnitPprInfo</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Ppr.html#UnitPprInfo"><span class="hs-identifier hs-type">UnitPprInfo</span></a></span><span> </span><span class="hs-comment">-- ^ Cache for some unit info retrieved from the DB</span><span>
</span><span id="line-559"></span><span>   </span><span class="hs-special">}</span><span>
</span><span id="line-560"></span><span>   </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680790429"><span id="local-6989586621680790431"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; Indefinite a -&gt; Indefinite b)
-&gt; (forall a b. a -&gt; Indefinite b -&gt; Indefinite a)
-&gt; Functor Indefinite
forall a b. a -&gt; Indefinite b -&gt; Indefinite a
forall a b. (a -&gt; b) -&gt; Indefinite a -&gt; Indefinite b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; Indefinite b -&gt; Indefinite a
$c&lt;$ :: forall a b. a -&gt; Indefinite b -&gt; Indefinite a
fmap :: forall a b. (a -&gt; b) -&gt; Indefinite a -&gt; Indefinite b
$cfmap :: forall a b. (a -&gt; b) -&gt; Indefinite a -&gt; Indefinite b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-561"></span><span>
</span><span id="line-562"></span><span id="local-6989586621680791357"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790426"><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="annot"><a href="#local-6989586621680791357"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791357"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-563"></span><span>   </span><span id="local-6989586621680790424"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790424"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680790423"><span class="annot"><span class="annottext">== :: Indefinite unit -&gt; Indefinite unit -&gt; Bool
</span><span class="hs-operator hs-var hs-var hs-var hs-var">==</span></span></span><span> </span><span id="local-6989586621680790422"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790422"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Indefinite unit -&gt; unit
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790424"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">unit -&gt; unit -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Indefinite unit -&gt; unit
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790422"><span class="hs-identifier hs-var">b</span></a></span></span><span>
</span><span id="line-564"></span><span>
</span><span id="line-565"></span><span id="local-6989586621680791356"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790407"><span id="local-6989586621680790409"><span id="local-6989586621680790411"><span id="local-6989586621680790413"><span id="local-6989586621680790415"><span id="local-6989586621680790417"><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="#local-6989586621680791356"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791356"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-566"></span><span>   </span><span id="local-6989586621680790405"><span class="annot"><span class="annottext">compare :: Indefinite unit -&gt; Indefinite unit -&gt; Ordering
</span><a href="#local-6989586621680790405"><span class="hs-identifier hs-var hs-var hs-var hs-var">compare</span></a></span></span><span> </span><span id="local-6989586621680790404"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790404"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680790403"><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790403"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">unit -&gt; unit -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-identifier hs-var">compare</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Indefinite unit -&gt; unit
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790404"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Indefinite unit -&gt; unit
forall unit. Indefinite unit -&gt; unit
</span><a href="GHC.Unit.Types.html#indefUnit"><span class="hs-identifier hs-var hs-var">indefUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Indefinite unit
</span><a href="#local-6989586621680790403"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-567"></span><span>
</span><span id="line-568"></span><span>
</span><span id="line-569"></span><span id="local-6989586621680791354"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791354"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791354"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-570"></span><span>  </span><span id="local-6989586621680790398"><span class="annot"><span class="annottext">getUnique :: Indefinite unit -&gt; Unique
</span><a href="#local-6989586621680790398"><span class="hs-identifier hs-var hs-var hs-var hs-var">getUnique</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span id="local-6989586621680790397"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790397"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe UnitPprInfo
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">unit -&gt; Unique
forall a. Uniquable a =&gt; a -&gt; Unique
</span><a href="GHC.Types.Unique.html#getUnique"><span class="hs-identifier hs-var">getUnique</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790397"><span class="hs-identifier hs-var">n</span></a></span></span><span>
</span><span id="line-571"></span><span>
</span><span id="line-572"></span><span id="local-6989586621680791442"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790394"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791442"><span class="hs-keyword hs-type">unit</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791442"><span class="hs-keyword hs-type">unit</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-573"></span><span>  </span><span id="local-6989586621680790389"><span class="annot"><span class="annottext">ppr :: Indefinite unit -&gt; SDoc
</span><a href="#local-6989586621680790389"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span id="local-6989586621680790388"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790388"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe UnitPprInfo
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">unit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790388"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-574"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#Indefinite"><span class="hs-identifier hs-type">Indefinite</span></a></span><span> </span><span id="local-6989586621680790387"><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790387"><span class="hs-identifier hs-var">uid</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680790386"><span class="annot"><span class="annottext">UnitPprInfo
</span><a href="#local-6989586621680790386"><span class="hs-identifier hs-var">pprinfo</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-575"></span><span>    </span><span class="annot"><span class="annottext">(Bool -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier hs-var">getPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680790385"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680790385"><span class="hs-identifier hs-var">debug</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-576"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680790385"><span class="hs-identifier hs-var">debug</span></a></span><span>
</span><span id="line-577"></span><span>         </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">unit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">unit
</span><a href="#local-6989586621680790387"><span class="hs-identifier hs-var">uid</span></a></span><span>
</span><span id="line-578"></span><span>         </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">UnitPprInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnitPprInfo
</span><a href="#local-6989586621680790386"><span class="hs-identifier hs-var">pprinfo</span></a></span></span><span>
</span><span id="line-579"></span><span>
</span><span id="line-580"></span><span>
</span><span id="line-581"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-582"></span><span class="hs-comment">-- WIRED-IN UNITS</span><span>
</span><span id="line-583"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-584"></span><span>
</span><span id="line-585"></span><span class="hs-comment">{-
Note [Wired-in units]
~~~~~~~~~~~~~~~~~~~~~

Certain packages are known to the compiler, in that we know about certain
entities that reside in these packages, and the compiler needs to
declare static Modules and Names that refer to these packages.  Hence
the wired-in packages can't include version numbers in their package UnitId,
since we don't want to bake the version numbers of these packages into GHC.

So here's the plan.  Wired-in units are still versioned as
normal in the packages database, and you can still have multiple
versions of them installed. To the user, everything looks normal.

However, for each invocation of GHC, only a single instance of each wired-in
package will be recognised (the desired one is selected via
@-package@\/@-hide-package@), and GHC will internally pretend that it has the
*unversioned* 'UnitId', including in .hi files and object file symbols.

Unselected versions of wired-in packages will be ignored, as will any other
package that depends directly or indirectly on it (much as if you
had used @-ignore-package@).

The affected packages are compiled with, e.g., @-this-unit-id base@, so that
the symbols in the object files have the unversioned unit id in their name.

Make sure you change 'GHC.Unit.State.findWiredInUnits' if you add an entry here.

-}</span><span>
</span><span id="line-614"></span><span>
</span><span id="line-615"></span><span class="annot"><a href="GHC.Unit.Types.html#bignumUnitId"><span class="hs-identifier hs-type">bignumUnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#primUnitId"><span class="hs-identifier hs-type">primUnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#baseUnitId"><span class="hs-identifier hs-type">baseUnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#rtsUnitId"><span class="hs-identifier hs-type">rtsUnitId</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-616"></span><span>  </span><span class="annot"><a href="GHC.Unit.Types.html#thUnitId"><span class="hs-identifier hs-type">thUnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mainUnitId"><span class="hs-identifier hs-type">mainUnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#thisGhcUnitId"><span class="hs-identifier hs-type">thisGhcUnitId</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#interactiveUnitId"><span class="hs-identifier hs-type">interactiveUnitId</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span>
</span><span id="line-617"></span><span>
</span><span id="line-618"></span><span class="annot"><a href="GHC.Unit.Types.html#bignumUnit"><span class="hs-identifier hs-type">bignumUnit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#primUnit"><span class="hs-identifier hs-type">primUnit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#baseUnit"><span class="hs-identifier hs-type">baseUnit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#rtsUnit"><span class="hs-identifier hs-type">rtsUnit</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-619"></span><span>  </span><span class="annot"><a href="GHC.Unit.Types.html#thUnit"><span class="hs-identifier hs-type">thUnit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#mainUnit"><span class="hs-identifier hs-type">mainUnit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#thisGhcUnit"><span class="hs-identifier hs-type">thisGhcUnit</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#interactiveUnit"><span class="hs-identifier hs-type">interactiveUnit</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Unit"><span class="hs-identifier hs-type">Unit</span></a></span><span>
</span><span id="line-620"></span><span>
</span><span id="line-621"></span><span id="primUnitId"><span class="annot"><span class="annottext">primUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#primUnitId"><span class="hs-identifier hs-var hs-var">primUnitId</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ghc-prim&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-622"></span><span id="bignumUnitId"><span class="annot"><span class="annottext">bignumUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#bignumUnitId"><span class="hs-identifier hs-var hs-var">bignumUnitId</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ghc-bignum&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-623"></span><span id="baseUnitId"><span class="annot"><span class="annottext">baseUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#baseUnitId"><span class="hs-identifier hs-var hs-var">baseUnitId</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;base&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-624"></span><span id="rtsUnitId"><span class="annot"><span class="annottext">rtsUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#rtsUnitId"><span class="hs-identifier hs-var hs-var">rtsUnitId</span></a></span></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;rts&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-625"></span><span id="thisGhcUnitId"><span class="annot"><span class="annottext">thisGhcUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#thisGhcUnitId"><span class="hs-identifier hs-var hs-var">thisGhcUnitId</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ghc&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-626"></span><span id="interactiveUnitId"><span class="annot"><span class="annottext">interactiveUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#interactiveUnitId"><span class="hs-identifier hs-var hs-var">interactiveUnitId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;interactive&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-627"></span><span id="thUnitId"><span class="annot"><span class="annottext">thUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#thUnitId"><span class="hs-identifier hs-var hs-var">thUnitId</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;template-haskell&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-628"></span><span>
</span><span id="line-629"></span><span id="thUnit"><span class="annot"><span class="annottext">thUnit :: Unit
</span><a href="GHC.Unit.Types.html#thUnit"><span class="hs-identifier hs-var hs-var">thUnit</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#thUnitId"><span class="hs-identifier hs-var">thUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-630"></span><span id="primUnit"><span class="annot"><span class="annottext">primUnit :: Unit
</span><a href="GHC.Unit.Types.html#primUnit"><span class="hs-identifier hs-var hs-var">primUnit</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#primUnitId"><span class="hs-identifier hs-var">primUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-631"></span><span id="bignumUnit"><span class="annot"><span class="annottext">bignumUnit :: Unit
</span><a href="GHC.Unit.Types.html#bignumUnit"><span class="hs-identifier hs-var hs-var">bignumUnit</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#bignumUnitId"><span class="hs-identifier hs-var">bignumUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-632"></span><span id="baseUnit"><span class="annot"><span class="annottext">baseUnit :: Unit
</span><a href="GHC.Unit.Types.html#baseUnit"><span class="hs-identifier hs-var hs-var">baseUnit</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#baseUnitId"><span class="hs-identifier hs-var">baseUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-633"></span><span id="rtsUnit"><span class="annot"><span class="annottext">rtsUnit :: Unit
</span><a href="GHC.Unit.Types.html#rtsUnit"><span class="hs-identifier hs-var hs-var">rtsUnit</span></a></span></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#rtsUnitId"><span class="hs-identifier hs-var">rtsUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-634"></span><span id="thisGhcUnit"><span class="annot"><span class="annottext">thisGhcUnit :: Unit
</span><a href="GHC.Unit.Types.html#thisGhcUnit"><span class="hs-identifier hs-var hs-var">thisGhcUnit</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#thisGhcUnitId"><span class="hs-identifier hs-var">thisGhcUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-635"></span><span id="interactiveUnit"><span class="annot"><span class="annottext">interactiveUnit :: Unit
</span><a href="GHC.Unit.Types.html#interactiveUnit"><span class="hs-identifier hs-var hs-var">interactiveUnit</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#interactiveUnitId"><span class="hs-identifier hs-var">interactiveUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-636"></span><span>
</span><span id="line-637"></span><span class="hs-comment">-- | This is the package Id for the current program.  It is the default</span><span>
</span><span id="line-638"></span><span class="hs-comment">-- package Id if you don't specify a package name.  We don't add this prefix</span><span>
</span><span id="line-639"></span><span class="hs-comment">-- to symbol names, since there can be only one main package per program.</span><span>
</span><span id="line-640"></span><span id="mainUnitId"><span class="annot"><span class="annottext">mainUnitId :: UnitId
</span><a href="GHC.Unit.Types.html#mainUnitId"><span class="hs-identifier hs-var hs-var">mainUnitId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnitId
</span><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-var">UnitId</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;main&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-641"></span><span id="mainUnit"><span class="annot"><span class="annottext">mainUnit :: Unit
</span><a href="GHC.Unit.Types.html#mainUnit"><span class="hs-identifier hs-var hs-var">mainUnit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Definite UnitId -&gt; Unit
forall uid. Definite uid -&gt; GenUnit uid
</span><a href="GHC.Unit.Types.html#RealUnit"><span class="hs-identifier hs-var">RealUnit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnitId -&gt; Definite UnitId
forall unit. unit -&gt; Definite unit
</span><a href="GHC.Unit.Types.html#Definite"><span class="hs-identifier hs-var">Definite</span></a></span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#mainUnitId"><span class="hs-identifier hs-var">mainUnitId</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-642"></span><span>
</span><span id="line-643"></span><span class="annot"><a href="GHC.Unit.Types.html#isInteractiveModule"><span class="hs-identifier hs-type">isInteractiveModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-644"></span><span id="isInteractiveModule"><span class="annot"><span class="annottext">isInteractiveModule :: QueryQualifyModule
</span><a href="GHC.Unit.Types.html#isInteractiveModule"><span class="hs-identifier hs-var hs-var">isInteractiveModule</span></a></span></span><span> </span><span id="local-6989586621680790384"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680790384"><span class="hs-identifier hs-var">mod</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Module -&gt; Unit
forall unit. GenModule unit -&gt; unit
</span><a href="GHC.Unit.Types.html#moduleUnit"><span class="hs-identifier hs-var hs-var">moduleUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680790384"><span class="hs-identifier hs-var">mod</span></a></span><span> </span><span class="annot"><span class="annottext">Unit -&gt; Unit -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Unit
</span><a href="GHC.Unit.Types.html#interactiveUnit"><span class="hs-identifier hs-var">interactiveUnit</span></a></span><span>
</span><span id="line-645"></span><span>
</span><span id="line-646"></span><span class="annot"><a href="GHC.Unit.Types.html#wiredInUnitIds"><span class="hs-identifier hs-type">wiredInUnitIds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Unit.Types.html#UnitId"><span class="hs-identifier hs-type">UnitId</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-647"></span><span id="wiredInUnitIds"><span class="annot"><span class="annottext">wiredInUnitIds :: [UnitId]
</span><a href="GHC.Unit.Types.html#wiredInUnitIds"><span class="hs-identifier hs-var hs-var">wiredInUnitIds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-648"></span><span>   </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#primUnitId"><span class="hs-identifier hs-var">primUnitId</span></a></span><span>
</span><span id="line-649"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#bignumUnitId"><span class="hs-identifier hs-var">bignumUnitId</span></a></span><span>
</span><span id="line-650"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#baseUnitId"><span class="hs-identifier hs-var">baseUnitId</span></a></span><span>
</span><span id="line-651"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#rtsUnitId"><span class="hs-identifier hs-var">rtsUnitId</span></a></span><span>
</span><span id="line-652"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#thUnitId"><span class="hs-identifier hs-var">thUnitId</span></a></span><span>
</span><span id="line-653"></span><span>   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnitId
</span><a href="GHC.Unit.Types.html#thisGhcUnitId"><span class="hs-identifier hs-var">thisGhcUnitId</span></a></span><span>
</span><span id="line-654"></span><span>   </span><span class="hs-special">]</span><span>
</span><span id="line-655"></span><span>
</span><span id="line-656"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-657"></span><span class="hs-comment">-- Boot Modules</span><span>
</span><span id="line-658"></span><span class="hs-comment">---------------------------------------------------------------------</span><span>
</span><span id="line-659"></span><span>
</span><span id="line-660"></span><span class="hs-comment">-- Note [Boot Module Naming]</span><span>
</span><span id="line-661"></span><span class="hs-comment">-- ~~~~~~~~~~~~~~~~~~~~~~~~~</span><span>
</span><span id="line-662"></span><span class="hs-comment">-- Why is this section here? After all, these modules are supposed to be about</span><span>
</span><span id="line-663"></span><span class="hs-comment">-- ways of referring to modules, not modules themselves. Well, the &quot;bootness&quot; of</span><span>
</span><span id="line-664"></span><span class="hs-comment">-- a module is in a way part of its name, because 'import {-# SOURCE #-} Foo'</span><span>
</span><span id="line-665"></span><span class="hs-comment">-- references the boot module in particular while 'import Foo' references the</span><span>
</span><span id="line-666"></span><span class="hs-comment">-- regular module. Backpack signatures live in the normal module namespace (no</span><span>
</span><span id="line-667"></span><span class="hs-comment">-- special import), so they don't matter here. When dealing with the modules</span><span>
</span><span id="line-668"></span><span class="hs-comment">-- themselves, however, one should use not 'IsBoot' or conflate signatures and</span><span>
</span><span id="line-669"></span><span class="hs-comment">-- modules in opposition to boot interfaces. Instead, one should use</span><span>
</span><span id="line-670"></span><span class="hs-comment">-- 'DriverPhases.HscSource'. See Note [HscSource types].</span><span>
</span><span id="line-671"></span><span>
</span><span id="line-672"></span><span class="hs-comment">-- | Indicates whether a module name is referring to a boot interface (hs-boot</span><span>
</span><span id="line-673"></span><span class="hs-comment">-- file) or regular module (hs file). We need to treat boot modules specially</span><span>
</span><span id="line-674"></span><span class="hs-comment">-- when building compilation graphs, since they break cycles. Regular source</span><span>
</span><span id="line-675"></span><span class="hs-comment">-- files and signature files are treated equivalently.</span><span>
</span><span id="line-676"></span><span class="hs-keyword">data</span><span> </span><span id="IsBootInterface"><span class="annot"><a href="GHC.Unit.Types.html#IsBootInterface"><span class="hs-identifier hs-var">IsBootInterface</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="NotBoot"><span class="annot"><a href="GHC.Unit.Types.html#NotBoot"><span class="hs-identifier hs-var">NotBoot</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="IsBoot"><span class="annot"><a href="GHC.Unit.Types.html#IsBoot"><span class="hs-identifier hs-var">IsBoot</span></a></span></span><span>
</span><span id="line-677"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680790378"><span id="local-6989586621680790380"><span class="annot"><span class="annottext">IsBootInterface -&gt; IsBootInterface -&gt; Bool
(IsBootInterface -&gt; IsBootInterface -&gt; Bool)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; Bool)
-&gt; Eq IsBootInterface
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
$c/= :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
== :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
$c== :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790359"><span id="local-6989586621680790361"><span id="local-6989586621680790364"><span id="local-6989586621680790367"><span id="local-6989586621680790370"><span id="local-6989586621680790372"><span id="local-6989586621680790374"><span class="annot"><span class="annottext">Eq IsBootInterface
Eq IsBootInterface
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; Ordering)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; Bool)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; Bool)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; Bool)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; Bool)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface)
-&gt; (IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface)
-&gt; Ord IsBootInterface
IsBootInterface -&gt; IsBootInterface -&gt; Bool
IsBootInterface -&gt; IsBootInterface -&gt; Ordering
IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface
$cmin :: IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface
max :: IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface
$cmax :: IsBootInterface -&gt; IsBootInterface -&gt; IsBootInterface
&gt;= :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
$c&gt;= :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
&gt; :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
$c&gt; :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
&lt;= :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
$c&lt;= :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
&lt; :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
$c&lt; :: IsBootInterface -&gt; IsBootInterface -&gt; Bool
compare :: IsBootInterface -&gt; IsBootInterface -&gt; Ordering
$ccompare :: IsBootInterface -&gt; IsBootInterface -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790353"><span id="local-6989586621680790355"><span id="local-6989586621680790357"><span class="annot"><span class="annottext">Int -&gt; IsBootInterface -&gt; ShowS
[IsBootInterface] -&gt; ShowS
IsBootInterface -&gt; String
(Int -&gt; IsBootInterface -&gt; ShowS)
-&gt; (IsBootInterface -&gt; String)
-&gt; ([IsBootInterface] -&gt; ShowS)
-&gt; Show IsBootInterface
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [IsBootInterface] -&gt; ShowS
$cshowList :: [IsBootInterface] -&gt; ShowS
show :: IsBootInterface -&gt; String
$cshow :: IsBootInterface -&gt; String
showsPrec :: Int -&gt; IsBootInterface -&gt; ShowS
$cshowsPrec :: Int -&gt; IsBootInterface -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790323"><span id="local-6989586621680790325"><span id="local-6989586621680790327"><span id="local-6989586621680790329"><span id="local-6989586621680790331"><span id="local-6989586621680790333"><span id="local-6989586621680790335"><span id="local-6989586621680790337"><span id="local-6989586621680790339"><span id="local-6989586621680790341"><span id="local-6989586621680790343"><span id="local-6989586621680790345"><span id="local-6989586621680790347"><span id="local-6989586621680790349"><span class="annot"><span class="annottext">Typeable IsBootInterface
Typeable IsBootInterface
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; IsBootInterface -&gt; c IsBootInterface)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c IsBootInterface)
-&gt; (IsBootInterface -&gt; Constr)
-&gt; (IsBootInterface -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c IsBootInterface))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c IsBootInterface))
-&gt; ((forall b. Data b =&gt; b -&gt; b)
    -&gt; IsBootInterface -&gt; IsBootInterface)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r)
-&gt; (forall u.
    (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; IsBootInterface -&gt; m IsBootInterface)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; IsBootInterface -&gt; m IsBootInterface)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; IsBootInterface -&gt; m IsBootInterface)
-&gt; Data IsBootInterface
IsBootInterface -&gt; DataType
IsBootInterface -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; IsBootInterface -&gt; IsBootInterface
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c IsBootInterface
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; IsBootInterface -&gt; c IsBootInterface
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c IsBootInterface)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c IsBootInterface)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; IsBootInterface -&gt; m IsBootInterface
gmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; u
$cgmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; IsBootInterface -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; IsBootInterface -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; IsBootInterface -&gt; IsBootInterface
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; IsBootInterface -&gt; IsBootInterface
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c IsBootInterface)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c IsBootInterface)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c IsBootInterface)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c IsBootInterface)
dataTypeOf :: IsBootInterface -&gt; DataType
$cdataTypeOf :: IsBootInterface -&gt; DataType
toConstr :: IsBootInterface -&gt; Constr
$ctoConstr :: IsBootInterface -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c IsBootInterface
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c IsBootInterface
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; IsBootInterface -&gt; c IsBootInterface
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; IsBootInterface -&gt; c IsBootInterface
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-678"></span><span>
</span><span id="line-679"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790320"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IsBootInterface"><span class="hs-identifier hs-type">IsBootInterface</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-680"></span><span>  </span><span id="local-6989586621680790316"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; IsBootInterface -&gt; IO ()
</span><a href="#local-6989586621680790316"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790315"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790315"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span id="local-6989586621680790314"><span class="annot"><span class="annottext">IsBootInterface
</span><a href="#local-6989586621680790314"><span class="hs-identifier hs-var">ib</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; Bool -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790315"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; IO ()) -&gt; Bool -&gt; IO ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-681"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="#local-6989586621680790314"><span class="hs-identifier hs-var">ib</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-682"></span><span>      </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="GHC.Unit.Types.html#NotBoot"><span class="hs-identifier hs-var">NotBoot</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-683"></span><span>      </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="GHC.Unit.Types.html#IsBoot"><span class="hs-identifier hs-var">IsBoot</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-684"></span><span>  </span><span id="local-6989586621680790310"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO IsBootInterface
</span><a href="#local-6989586621680790310"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790309"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790309"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-685"></span><span>    </span><span id="local-6989586621680790308"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680790308"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO Bool
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790309"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-686"></span><span>    </span><span class="annot"><span class="annottext">IsBootInterface -&gt; IO IsBootInterface
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(IsBootInterface -&gt; IO IsBootInterface)
-&gt; IsBootInterface -&gt; IO IsBootInterface
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680790308"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-687"></span><span>      </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="GHC.Unit.Types.html#NotBoot"><span class="hs-identifier hs-var">NotBoot</span></a></span><span>
</span><span id="line-688"></span><span>      </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="GHC.Unit.Types.html#IsBoot"><span class="hs-identifier hs-var">IsBoot</span></a></span><span>
</span><span id="line-689"></span><span>
</span><span id="line-690"></span><span class="hs-comment">-- | This data type just pairs a value 'mod' with an IsBootInterface flag. In</span><span>
</span><span id="line-691"></span><span class="hs-comment">-- practice, 'mod' is usually a @Module@ or @ModuleName@'.</span><span>
</span><span id="line-692"></span><span class="hs-keyword">data</span><span> </span><span id="GenWithIsBoot"><span class="annot"><a href="GHC.Unit.Types.html#GenWithIsBoot"><span class="hs-identifier hs-var">GenWithIsBoot</span></a></span></span><span> </span><span id="local-6989586621680791353"><span class="annot"><a href="#local-6989586621680791353"><span class="hs-identifier hs-type">mod</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="GWIB"><span class="annot"><a href="GHC.Unit.Types.html#GWIB"><span class="hs-identifier hs-var">GWIB</span></a></span></span><span>
</span><span id="line-693"></span><span>  </span><span class="hs-special">{</span><span> </span><span id="gwib_mod"><span class="annot"><span class="annottext">forall mod. GenWithIsBoot mod -&gt; mod
</span><a href="GHC.Unit.Types.html#gwib_mod"><span class="hs-identifier hs-var hs-var">gwib_mod</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680791353"><span class="hs-identifier hs-type">mod</span></a></span><span>
</span><span id="line-694"></span><span>  </span><span class="hs-special">,</span><span> </span><span id="gwib_isBoot"><span class="annot"><span class="annottext">forall mod. GenWithIsBoot mod -&gt; IsBootInterface
</span><a href="GHC.Unit.Types.html#gwib_isBoot"><span class="hs-identifier hs-var hs-var">gwib_isBoot</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#IsBootInterface"><span class="hs-identifier hs-type">IsBootInterface</span></a></span><span>
</span><span id="line-695"></span><span>  </span><span class="hs-special">}</span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span> </span><span id="local-6989586621680790299"><span id="local-6989586621680790303"><span class="annot"><span class="annottext">GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
(GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool)
-&gt; Eq (GenWithIsBoot mod)
forall mod.
Eq mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
$c/= :: forall mod.
Eq mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
== :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
$c== :: forall mod.
Eq mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790276"><span id="local-6989586621680790278"><span id="local-6989586621680790281"><span id="local-6989586621680790284"><span id="local-6989586621680790287"><span id="local-6989586621680790291"><span id="local-6989586621680790295"><span class="annot"><span class="annottext">Eq (GenWithIsBoot mod)
Eq (GenWithIsBoot mod)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Ordering)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod)
-&gt; (GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod)
-&gt; Ord (GenWithIsBoot mod)
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Ordering
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
forall {mod}. Ord mod =&gt; Eq (GenWithIsBoot mod)
forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Ordering
forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod
min :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod
$cmin :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod
max :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod
$cmax :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; GenWithIsBoot mod
&gt;= :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
$c&gt;= :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
&gt; :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
$c&gt; :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
&lt;= :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
$c&lt;= :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
&lt; :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
$c&lt; :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Bool
compare :: GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Ordering
$ccompare :: forall mod.
Ord mod =&gt;
GenWithIsBoot mod -&gt; GenWithIsBoot mod -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790266"><span id="local-6989586621680790268"><span id="local-6989586621680790274"><span class="annot"><span class="annottext">Int -&gt; GenWithIsBoot mod -&gt; ShowS
[GenWithIsBoot mod] -&gt; ShowS
GenWithIsBoot mod -&gt; String
(Int -&gt; GenWithIsBoot mod -&gt; ShowS)
-&gt; (GenWithIsBoot mod -&gt; String)
-&gt; ([GenWithIsBoot mod] -&gt; ShowS)
-&gt; Show (GenWithIsBoot mod)
forall mod. Show mod =&gt; Int -&gt; GenWithIsBoot mod -&gt; ShowS
forall mod. Show mod =&gt; [GenWithIsBoot mod] -&gt; ShowS
forall mod. Show mod =&gt; GenWithIsBoot mod -&gt; String
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [GenWithIsBoot mod] -&gt; ShowS
$cshowList :: forall mod. Show mod =&gt; [GenWithIsBoot mod] -&gt; ShowS
show :: GenWithIsBoot mod -&gt; String
$cshow :: forall mod. Show mod =&gt; GenWithIsBoot mod -&gt; String
showsPrec :: Int -&gt; GenWithIsBoot mod -&gt; ShowS
$cshowsPrec :: forall mod. Show mod =&gt; Int -&gt; GenWithIsBoot mod -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span>
</span><span id="line-696"></span><span>             </span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790262"><span id="local-6989586621680790264"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; GenWithIsBoot a -&gt; GenWithIsBoot b)
-&gt; (forall a b. a -&gt; GenWithIsBoot b -&gt; GenWithIsBoot a)
-&gt; Functor GenWithIsBoot
forall a b. a -&gt; GenWithIsBoot b -&gt; GenWithIsBoot a
forall a b. (a -&gt; b) -&gt; GenWithIsBoot a -&gt; GenWithIsBoot b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; GenWithIsBoot b -&gt; GenWithIsBoot a
$c&lt;$ :: forall a b. a -&gt; GenWithIsBoot b -&gt; GenWithIsBoot a
fmap :: forall a b. (a -&gt; b) -&gt; GenWithIsBoot a -&gt; GenWithIsBoot b
$cfmap :: forall a b. (a -&gt; b) -&gt; GenWithIsBoot a -&gt; GenWithIsBoot b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790226"><span id="local-6989586621680790228"><span id="local-6989586621680790230"><span id="local-6989586621680790232"><span id="local-6989586621680790234"><span id="local-6989586621680790236"><span id="local-6989586621680790238"><span id="local-6989586621680790240"><span id="local-6989586621680790242"><span id="local-6989586621680790244"><span id="local-6989586621680790246"><span id="local-6989586621680790248"><span id="local-6989586621680790250"><span id="local-6989586621680790252"><span id="local-6989586621680790254"><span id="local-6989586621680790257"><span id="local-6989586621680790259"><span class="annot"><span class="annottext">(forall m. Monoid m =&gt; GenWithIsBoot m -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a)
-&gt; (forall a. GenWithIsBoot a -&gt; [a])
-&gt; (forall a. GenWithIsBoot a -&gt; Bool)
-&gt; (forall a. GenWithIsBoot a -&gt; Int)
-&gt; (forall a. Eq a =&gt; a -&gt; GenWithIsBoot a -&gt; Bool)
-&gt; (forall a. Ord a =&gt; GenWithIsBoot a -&gt; a)
-&gt; (forall a. Ord a =&gt; GenWithIsBoot a -&gt; a)
-&gt; (forall a. Num a =&gt; GenWithIsBoot a -&gt; a)
-&gt; (forall a. Num a =&gt; GenWithIsBoot a -&gt; a)
-&gt; Foldable GenWithIsBoot
forall a. Eq a =&gt; a -&gt; GenWithIsBoot a -&gt; Bool
forall a. Num a =&gt; GenWithIsBoot a -&gt; a
forall a. Ord a =&gt; GenWithIsBoot a -&gt; a
forall m. Monoid m =&gt; GenWithIsBoot m -&gt; m
forall a. GenWithIsBoot a -&gt; Bool
forall a. GenWithIsBoot a -&gt; Int
forall a. GenWithIsBoot a -&gt; [a]
forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a
forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m
forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
forall (t :: * -&gt; *).
(forall m. Monoid m =&gt; t m -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; t a -&gt; a)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; t a -&gt; a)
-&gt; (forall a. t a -&gt; [a])
-&gt; (forall a. t a -&gt; Bool)
-&gt; (forall a. t a -&gt; Int)
-&gt; (forall a. Eq a =&gt; a -&gt; t a -&gt; Bool)
-&gt; (forall a. Ord a =&gt; t a -&gt; a)
-&gt; (forall a. Ord a =&gt; t a -&gt; a)
-&gt; (forall a. Num a =&gt; t a -&gt; a)
-&gt; (forall a. Num a =&gt; t a -&gt; a)
-&gt; Foldable t
product :: forall a. Num a =&gt; GenWithIsBoot a -&gt; a
$cproduct :: forall a. Num a =&gt; GenWithIsBoot a -&gt; a
sum :: forall a. Num a =&gt; GenWithIsBoot a -&gt; a
$csum :: forall a. Num a =&gt; GenWithIsBoot a -&gt; a
minimum :: forall a. Ord a =&gt; GenWithIsBoot a -&gt; a
$cminimum :: forall a. Ord a =&gt; GenWithIsBoot a -&gt; a
maximum :: forall a. Ord a =&gt; GenWithIsBoot a -&gt; a
$cmaximum :: forall a. Ord a =&gt; GenWithIsBoot a -&gt; a
elem :: forall a. Eq a =&gt; a -&gt; GenWithIsBoot a -&gt; Bool
$celem :: forall a. Eq a =&gt; a -&gt; GenWithIsBoot a -&gt; Bool
length :: forall a. GenWithIsBoot a -&gt; Int
$clength :: forall a. GenWithIsBoot a -&gt; Int
null :: forall a. GenWithIsBoot a -&gt; Bool
$cnull :: forall a. GenWithIsBoot a -&gt; Bool
toList :: forall a. GenWithIsBoot a -&gt; [a]
$ctoList :: forall a. GenWithIsBoot a -&gt; [a]
foldl1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a
$cfoldl1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a
foldr1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a
$cfoldr1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenWithIsBoot a -&gt; a
foldl' :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
$cfoldl' :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
foldl :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
$cfoldl :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
foldr' :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
$cfoldr' :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
foldr :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
$cfoldr :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenWithIsBoot a -&gt; b
foldMap' :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m
$cfoldMap' :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m
foldMap :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m
$cfoldMap :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenWithIsBoot a -&gt; m
fold :: forall m. Monoid m =&gt; GenWithIsBoot m -&gt; m
$cfold :: forall m. Monoid m =&gt; GenWithIsBoot m -&gt; m
</span><a href="../../base/src/Data.Foldable.html#Foldable"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Foldable</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790210"><span id="local-6989586621680790212"><span id="local-6989586621680790214"><span id="local-6989586621680790219"><span class="annot"><span class="annottext">Functor GenWithIsBoot
Foldable GenWithIsBoot
Functor GenWithIsBoot
-&gt; Foldable GenWithIsBoot
-&gt; (forall (f :: * -&gt; *) a b.
    Applicative f =&gt;
    (a -&gt; f b) -&gt; GenWithIsBoot a -&gt; f (GenWithIsBoot b))
-&gt; (forall (f :: * -&gt; *) a.
    Applicative f =&gt;
    GenWithIsBoot (f a) -&gt; f (GenWithIsBoot a))
-&gt; (forall (m :: * -&gt; *) a b.
    Monad m =&gt;
    (a -&gt; m b) -&gt; GenWithIsBoot a -&gt; m (GenWithIsBoot b))
-&gt; (forall (m :: * -&gt; *) a.
    Monad m =&gt;
    GenWithIsBoot (m a) -&gt; m (GenWithIsBoot a))
-&gt; Traversable GenWithIsBoot
forall (t :: * -&gt; *).
Functor t
-&gt; Foldable t
-&gt; (forall (f :: * -&gt; *) a b.
    Applicative f =&gt;
    (a -&gt; f b) -&gt; t a -&gt; f (t b))
-&gt; (forall (f :: * -&gt; *) a. Applicative f =&gt; t (f a) -&gt; f (t a))
-&gt; (forall (m :: * -&gt; *) a b.
    Monad m =&gt;
    (a -&gt; m b) -&gt; t a -&gt; m (t b))
-&gt; (forall (m :: * -&gt; *) a. Monad m =&gt; t (m a) -&gt; m (t a))
-&gt; Traversable t
forall (m :: * -&gt; *) a.
Monad m =&gt;
GenWithIsBoot (m a) -&gt; m (GenWithIsBoot a)
forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenWithIsBoot (f a) -&gt; f (GenWithIsBoot a)
forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenWithIsBoot a -&gt; m (GenWithIsBoot b)
forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenWithIsBoot a -&gt; f (GenWithIsBoot b)
sequence :: forall (m :: * -&gt; *) a.
Monad m =&gt;
GenWithIsBoot (m a) -&gt; m (GenWithIsBoot a)
$csequence :: forall (m :: * -&gt; *) a.
Monad m =&gt;
GenWithIsBoot (m a) -&gt; m (GenWithIsBoot a)
mapM :: forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenWithIsBoot a -&gt; m (GenWithIsBoot b)
$cmapM :: forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenWithIsBoot a -&gt; m (GenWithIsBoot b)
sequenceA :: forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenWithIsBoot (f a) -&gt; f (GenWithIsBoot a)
$csequenceA :: forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenWithIsBoot (f a) -&gt; f (GenWithIsBoot a)
traverse :: forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenWithIsBoot a -&gt; f (GenWithIsBoot b)
$ctraverse :: forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenWithIsBoot a -&gt; f (GenWithIsBoot b)
</span><a href="../../base/src/Data.Traversable.html#Traversable"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Traversable</span></a></span></span></span></span></span><span>
</span><span id="line-697"></span><span>             </span><span class="hs-special">)</span><span>
</span><span id="line-698"></span><span>
</span><span id="line-699"></span><span class="hs-keyword">type</span><span> </span><span id="ModuleNameWithIsBoot"><span class="annot"><a href="GHC.Unit.Types.html#ModuleNameWithIsBoot"><span class="hs-identifier hs-var">ModuleNameWithIsBoot</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenWithIsBoot"><span class="hs-identifier hs-type">GenWithIsBoot</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Module.Name.html#ModuleName"><span class="hs-identifier hs-type">ModuleName</span></a></span><span>
</span><span id="line-700"></span><span>
</span><span id="line-701"></span><span class="hs-keyword">type</span><span> </span><span id="ModuleWithIsBoot"><span class="annot"><a href="GHC.Unit.Types.html#ModuleWithIsBoot"><span class="hs-identifier hs-var">ModuleWithIsBoot</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#GenWithIsBoot"><span class="hs-identifier hs-type">GenWithIsBoot</span></a></span><span> </span><span class="annot"><a href="GHC.Unit.Types.html#Module"><span class="hs-identifier hs-type">Module</span></a></span><span>
</span><span id="line-702"></span><span>
</span><span id="line-703"></span><span id="local-6989586621680791324"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790205"><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791324"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Binary.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenWithIsBoot"><span class="hs-identifier hs-type">GenWithIsBoot</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791324"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-704"></span><span>  </span><span id="local-6989586621680790200"><span class="annot"><span class="annottext">put_ :: BinHandle -&gt; GenWithIsBoot a -&gt; IO ()
</span><a href="#local-6989586621680790200"><span class="hs-identifier hs-var hs-var hs-var hs-var">put_</span></a></span></span><span> </span><span id="local-6989586621680790199"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790199"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GWIB"><span class="hs-identifier hs-type">GWIB</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span id="local-6989586621680790198"><span class="annot"><span class="annottext">a
gwib_mod :: a
gwib_mod :: forall mod. GenWithIsBoot mod -&gt; mod
</span><a href="#local-6989586621680790198"><span class="hs-identifier hs-var hs-var">gwib_mod</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790197"><span class="annot"><span class="annottext">IsBootInterface
gwib_isBoot :: IsBootInterface
gwib_isBoot :: forall mod. GenWithIsBoot mod -&gt; IsBootInterface
</span><a href="#local-6989586621680790197"><span class="hs-identifier hs-var hs-var">gwib_isBoot</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-705"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; a -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790199"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790198"><span class="hs-identifier hs-var">gwib_mod</span></a></span><span>
</span><span id="line-706"></span><span>    </span><span class="annot"><span class="annottext">BinHandle -&gt; IsBootInterface -&gt; IO ()
forall a. Binary a =&gt; BinHandle -&gt; a -&gt; IO ()
</span><a href="GHC.Utils.Binary.html#put_"><span class="hs-identifier hs-var">put_</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790199"><span class="hs-identifier hs-var">bh</span></a></span><span> </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="#local-6989586621680790197"><span class="hs-identifier hs-var">gwib_isBoot</span></a></span><span>
</span><span id="line-707"></span><span>  </span><span id="local-6989586621680790191"><span class="annot"><span class="annottext">get :: BinHandle -&gt; IO (GenWithIsBoot a)
</span><a href="#local-6989586621680790191"><span class="hs-identifier hs-var hs-var hs-var hs-var">get</span></a></span></span><span> </span><span id="local-6989586621680790190"><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790190"><span class="hs-identifier hs-var">bh</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-708"></span><span>    </span><span id="local-6989586621680790189"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790189"><span class="hs-identifier hs-var">gwib_mod</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO a
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790190"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-709"></span><span>    </span><span id="local-6989586621680790188"><span class="annot"><span class="annottext">IsBootInterface
</span><a href="#local-6989586621680790188"><span class="hs-identifier hs-var">gwib_isBoot</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BinHandle -&gt; IO IsBootInterface
forall a. Binary a =&gt; BinHandle -&gt; IO a
</span><a href="GHC.Utils.Binary.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">BinHandle
</span><a href="#local-6989586621680790190"><span class="hs-identifier hs-var">bh</span></a></span><span>
</span><span id="line-710"></span><span>    </span><span class="annot"><span class="annottext">GenWithIsBoot a -&gt; IO (GenWithIsBoot a)
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">(GenWithIsBoot a -&gt; IO (GenWithIsBoot a))
-&gt; GenWithIsBoot a -&gt; IO (GenWithIsBoot a)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">GWIB :: forall mod. mod -&gt; IsBootInterface -&gt; GenWithIsBoot mod
</span><a href="GHC.Unit.Types.html#GWIB"><span class="hs-identifier hs-type">GWIB</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">a
gwib_mod :: a
gwib_mod :: a
</span><a href="#local-6989586621680790189"><span class="hs-identifier hs-var hs-var">gwib_mod</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">IsBootInterface
gwib_isBoot :: IsBootInterface
gwib_isBoot :: IsBootInterface
</span><a href="#local-6989586621680790188"><span class="hs-identifier hs-var hs-var">gwib_isBoot</span></a></span><span> </span><span class="hs-special">}</span></span><span>
</span><span id="line-711"></span><span>
</span><span id="line-712"></span><span id="local-6989586621680791323"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680790185"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791323"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GenWithIsBoot"><span class="hs-identifier hs-type">GenWithIsBoot</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680791323"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-713"></span><span>  </span><span id="local-6989586621680790183"><span class="annot"><span class="annottext">ppr :: GenWithIsBoot a -&gt; SDoc
</span><a href="#local-6989586621680790183"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Unit.Types.html#GWIB"><span class="hs-identifier hs-type">GWIB</span></a></span><span>  </span><span class="hs-special">{</span><span> </span><span id="local-6989586621680790182"><span class="annot"><span class="annottext">a
gwib_mod :: a
gwib_mod :: forall mod. GenWithIsBoot mod -&gt; mod
</span><a href="#local-6989586621680790182"><span class="hs-identifier hs-var hs-var">gwib_mod</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680790181"><span class="annot"><span class="annottext">IsBootInterface
gwib_isBoot :: IsBootInterface
gwib_isBoot :: forall mod. GenWithIsBoot mod -&gt; IsBootInterface
</span><a href="#local-6989586621680790181"><span class="hs-identifier hs-var hs-var">gwib_isBoot</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680790182"><span class="hs-identifier hs-var">gwib_mod</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="#local-6989586621680790181"><span class="hs-identifier hs-var">gwib_isBoot</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-714"></span><span>    </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="GHC.Unit.Types.html#IsBoot"><span class="hs-identifier hs-var">IsBoot</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-715"></span><span>    </span><span class="annot"><span class="annottext">IsBootInterface
</span><a href="GHC.Unit.Types.html#NotBoot"><span class="hs-identifier hs-var">NotBoot</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;{-# SOURCE #-}&quot;</span></span><span class="hs-special">]</span></span><span>
</span><span id="line-716"></span></pre></body></html>